我正在尝试了解 CGAL 3D 网格生成的一些概念。在我的特殊情况下,我试图在给定多面体网格的情况下生成四面体网格。我作为示例使用的多面体网格有两个未连接的凸区域。
如果我正确理解 CGAL 文档,3D 网格生成会创建一个三角剖分,它是一些点的凸包的四面体网格,在这种情况下,是我的输入多面体网格中的点。
三角剖分中的一些四面体可能在我的多面体网格之外,因此 CGAL 在生成 3D 四面体网格时实际返回的是一个对象,在 CGAL 文档中称为 C3T3,它可以查询内部是否有四面体、小平面、段或点我的多面体网格。这是正确的吗?
我做了一个小检查,我有以下输出:
std::cout << "Number of cells in triangulation " << visualMesh.triangulation().number_of_cells() << "\n";
std::cout << "Number of finite cells in triangulation " << visualMesh.triangulation().number_of_finite_cells()
<< "\n";
std::cout << "Number of cells in complex " << visualMesh.number_of_cells_in_complex() << "\n";
std::cout << "Number of cells in c3t3 " << visualMesh.number_of_cells() << "\n";
std::cout << "Number of facets in complex " << visualMesh.number_of_facets_in_complex() << "\n";
std::cout << "Number of facets in c3t3 " << visualMesh.number_of_facets() << "\n";
std::cout << "Number of vertices in complex " << visualMesh.number_of_vertices_in_complex() << "\n";
std::cout << "Number of coners " << visualMesh.number_of_corners() << "\n";
Number of cells in triangulation 67258
Number of finite cells in triangulation 61266
Number of cells in complex 57433
Number of cells in c3t3 57433
Number of facets in complex 8304
Number of facets in c3t3 8304
Number of vertices in complex 20
Number of coners 20
我不明白其中一些结果。首先,我不明白 和 之间的number_of_facets/cells
区别number_of_facets/cells_in_complex
。为什么它们返回相同的值,在这种情况下它们返回不同的值。
number_of_vertices_in_complex
我也对and有疑问number_of_corners
。这显然返回了我原始输入网格中的顶点数量。如果是这种情况,number_of_facets/cells[_in_complex]` 是否也返回有关我的原始输入网格的数据?如何获得四面体网格中的顶点数?
最后,如果我想迭代四面体网格的单元格/面/点,我必须使用 c3t3 迭代器还是三角剖分器?这对我来说不清楚,尽管我认为我必须使用 c3t3 的。