我是一名新手,刚接触 CGAL,我的问题可能非常简单。
我正在尝试使用 CGAL 进行 Delaunay 三角剖分。我有一个包含 N 个三维点的网格,这些点在一个球体上,我想使用这些点作为三角形的顶点来进行球面三角剖分。我只需要获取结果三角形的顶点列表,如下:
id_triangle1 vertex_1 vertex_2 vertex_3 id_triangle2 vertex_1 vertex_2 vertex_3 .......
我已经完成了如下操作来执行三角剖分:
std::vector<Point> P;
for(i=0;i<NSPOINTS;i++)
P.push_back(Point(GRID[i].x,GRID[i].y,GRID[i].z));
// building Delaunay triangulation.
Delaunay dt(P.begin(), P.end());
我的问题是我不知道如何获得三角剖分的结果。我弄清了如何获得面迭代器,但是我不知道该怎么做:
Delaunay::Finite_faces_iterator it;
for (it = dt.finite_faces_begin(); it != dt.finite_faces_end(); it++){
std::cout << dt.triangle(it) << std::endl;
}
我不确定迭代三角形是否正确,如果是的话...一个三角形等于一个面吗?也就是说,每个迭代位置只有一个三角形吗?如何正确获取每个三角形的x、y和z?