如何从顶点/索引缓冲区创建CGAL Nef_polyhedron_3?

时间:2019-02-01 00:52:44

标签: c++ buffer cgal vertex

我想对三角网格进行凸分解。查看CGAL文档,凸分解工作在CGAL::Nef_polyhedron_3类型上,该类型可以从CGAL::Polyhedron_3类型构造。但是我的输入网格表示为顶点缓冲区+索引缓冲区,如下所示:

struct Mesh {
    std::vector<Vector3> vertices;
    std::vector<int32_t> triangles;
};

如何将其转换为CGAL多面体?我知道我可以编写一个OFF文件并将其加载到CGAL多面体对象中,但是如果不需要的话,我不想引入磁盘IO开销。

1 个答案:

答案 0 :(得分:0)

您的输入为多边形汤的形式,正如我们在CGAL中所称的。有一些函数可以检查它们是否真的是多边形网格,如果有的话,可以使用函数来构造多边形网格,包括Polygon_3。看上去herehere