微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CGAl 3D 网格生成概念

如何解决CGAl 3D 网格生成概念

我正在尝试了解 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。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。