gpt4 book ai didi

c++ - CGAL - 如何使用 CGAL::Polygon_mesh_processing::connected_components 将一个 CGAL::Surface_mesh 转换为多个?

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:29 25 4
gpt4 key购买 nike

我正在创建一个网格实用程序库,我想包含的功能之一是能够拆分网格的不相交分区。为此,我正在尝试编写一个接受 CGAL::Surface_mesh 的方法。并返回 std::vector<CGAL::Surface_mesh> ,其中每个元素都是输入网格的连通分量。

我看到 CGAL 有 CGAL::Polygon_mesh_processing::connected components 功能,但这似乎只是为每个面分配一个标签,指示它属于哪个组件。我如何使用该操作的结果来构造一个新的 CGAL::Surface_mesh来自每组具有相同标签的面孔?

最佳答案

这样做的一种方法是使用 connected_components() 的结果作为 the Face_filtered_graph 的输入参数.我相信你可以做这样的事情:

 FCCmap fccmap = mesh.add_property_map<face_descriptor, faces_size_type> 
("f:CC").first;
faces_size_type num = PMP::connected_components(mesh,fccmap);
std::vector<Mesh> meshes(num);
for(int i=0; i< num; ++i)
{
Filtered_graph ffg(mesh, i, fccmap);
CGAL::copy_face_graph(ffg, meshes[i]);
}

关于c++ - CGAL - 如何使用 CGAL::Polygon_mesh_processing::connected_components 将一个 CGAL::Surface_mesh 转换为多个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54609105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com