首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGAL::Delaunay_triangulation_3中的无限循环

CGAL::Delaunay_triangulation_3中的无限循环
EN

Stack Overflow用户
提问于 2015-06-04 16:10:06
回答 1查看 297关注 0票数 1

我正在使用CGAL库对三维点云进行三角剖分。有时,应用程序可以正常工作,但大多数情况下,它会被卡住。当在三角剖分中插入一个新的三维点时,它进入无限循环。这个问题我只在Windows上遇到,在Linux上它总是工作得很好。我使用的是CGAL4.6 x64,内核Exact_predicates_inexact_constructions_kernel在Windows8.1 x64上使用Visual 2012/2015,在Ubuntu14.04 x64上使用GCC。

对于如何在Windows版本上解决这个问题,有什么建议吗?

更新:按照这个链接找到重现问题的最小代码和一个样本数据集:https://drive.google.com/file/d/0B8bb0qT4PvT8V2hqUEt0RUstLTg问题似乎在搜索最近的点和插入一个新的点的优化过程中(编译之前确定的两段代码是等价的,但第二种优化是通过两种方式进行的:只使用一个locate()而不是两个,并且不为每个点分配/使用std::向量)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-15 15:36:20

我认为bug在您的struct adjacent_vertex_back_inserter_t中,operator=应该如下所示:

代码语言:javascript
复制
    inline void operator=(const vertex_handle_t& w) {
      assert(! delaunay.is_infinite(v))
        if ( !delaunay.is_infinite(w) && (delaunay.geom_traits().compare_distance_3_object()(p, w->point(), v->point()) == CGAL::SMALLER)){
          v = w;
      }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30648926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档