在我的工作中,我需要获得第一个Voronoi邻居的壳层作为焦点粒子。为此,我使用Delaunay三角剖分,这是Voronoi三角剖分的对偶图。我使用的CGAL版本是4.7。我总是使用CGAL manual_4.7中的基本代码作为模板来创建Delaunay三角剖分。我的问题在于该示例中的头和类型,因为我最近发现它们与CGAL 4.14不同,后者是最新的可用版本。在CGAL 4.7中
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Periodic_2_Delaunay_triangulation_2.h>
#include <CGAL/Periodic_2_triangulation_traits_2.h>
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
#include <vector>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Periodic_2_triangulation_traits_2<K> Gt;
typedef CGAL::Triangulation_vertex_base_with_info_2<unsigned, Gt> Vb;
typedef CGAL::Periodic_2_triangulation_face_base_2<Gt> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Periodic_2_Delaunay_triangulation_2<Gt, Tds> Delaunay;
typedef Delaunay::Point Point;
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Periodic_2_Delaunay_triangulation_2.h>
#include <CGAL/Periodic_2_Delaunay_triangulation_traits_2.h>
#include <CGAL/Periodic_2_triangulation_face_base_2.h>
#include <CGAL/Periodic_2_triangulation_vertex_base_2.h>
#include <CGAL/Triangulation_vertex_base_with_info_2.h>
#include <iostream>
#include <vector>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Periodic_2_Delaunay_triangulation_traits_2<K> Gt;
typedef CGAL::Periodic_2_triangulation_vertex_base_2<Gt> Vbb;
typedef CGAL::Triangulation_vertex_base_with_info_2<unsigned, Gt, Vbb> Vb;
typedef CGAL::Periodic_2_triangulation_face_base_2<Gt> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Periodic_2_Delaunay_triangulation_2<Gt, Tds> Delaunay;
typedef Delaunay::Point Point;
然后,我仔细检查了手册,看看解释是否不同。据我所知,软件设计4.14和软件设计4.7是相同的,并与第二个示例相匹配。由于我需要具有空圆性质的三角剖分,并且只需要在Delaunay三角剖分中检索相邻顶点的索引,那么第一个结果是否也会导致相同的结果?我可以检查它们的某些点,但我只是怀疑它们是否对每一组点产生相同的结果?
发布于 2019-05-13 00:01:25
这导致了完全相同的结果。
要获得更详细的解释:周期性三角剖分需要具有顶点和面的三角剖分数据结构,这些顶点和面提供了一定数量的函数和成员,由概念描述(参见P2T2概念)。在CGAL4.7中,顶点类和face类不满足这些要求:它们缺少一些仅在P2T2的几个函数中使用的周期信息。然而,所有的编译和运行都很好,因为示例没有调用这几个函数。一些最近的编译器过于热心,他们决定希望能够编译类的所有函数,即使这些函数没有被调用,因此正在使用的顶点和基类不再令人满意。
https://stackoverflow.com/questions/56084468
复制相似问题