CGAl 3D 网格生成概念

时间:2021-04-21 09:39:58

标签: 3d cgal tetrahedra

我正在尝试了解 CGAL 3D 网格生成的一些概念。在我的特殊情况下,我试图在给定多面体网格的情况下生成四面体网格。我用作示例的多面体网格有两个未连接的凸区域。

enter image description here

如果我正确理解 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";

enter image description here

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/cellsnumber_of_facets/cells_in_complex 之间的区别。为什么它们返回相同的值,在这种情况下它们返回不同的值。

我对 number_of_vertices_in_complexnumber_of_corners 也有疑问。这显然返回了我原始输入网格中的顶点数量。如果是这种情况,number_of_facets/cells[_in_complex]` 是否也返回有关我的原始输入网格的数据?如何获得四面体网格中的顶点数?

最后,如果我想迭代四面体网格的单元/面/点,我必须使用 c3t3 迭代器还是三角剖分器?这对我来说不清楚,尽管我认为我必须使用 c3t3。

0 个答案:

没有答案