使用delaunay mesher进行编译错误

时间:2016-01-11 12:03:30

标签: mesh cgal

我正在尝试将2d网格库用于代码。我在文档

上复制了以下示例中的语法和包含文件

mesh_global.cpp

但是当我添加以下行

CGAL::refine_Delaunay_mesh_2(cdt, Criteria(0.015625, sq3*a));

我收到指向行

的编译错误
#include <CGAL/Delaunay_mesher_2.h>

事情就是代码编译得很好而不需要调用网格化函数。

完整的错误很大,可以在这里发布,但我发现这一行在

之间
/home/sameer/cgal/gap cvt/gap_cvt.cpp:1505:62:   required from here
/usr/include/CGAL/Delaunay_mesher_2.h:166:11: error: ‘class CGAL::Constrained_triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<CGAL::Triangulation_data_structure_2<CGAL::Triangulation_vertex_base_2<CGAL::Epick, CGAL::Triangulation_ds_vertex_base_2<void> >, CGAL::Constrained_triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_face_base_2<CGAL::Epick, CGAL::Triangulation_ds_face_base_2<void> > > > > > >’ has no member named ‘set_in_domain’
           it->set_in_domain(!mark);

除了代码所采用的参数之外,我几乎没有看到我所缺少的内容。

1 个答案:

答案 0 :(得分:0)

2D网格类Delaunay_mesher_2期望CDT模板参数的面部类型模型为DelaunayMeshFaceBase_2。您不能使用默认的Triangulation数据结构。

在您指出的示例中,CDT类型声明如下:

typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_vertex_base_2<K> Vb;
typedef CGAL::Delaunay_mesh_face_base_2<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, Tds> CDT;