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

问题描述 投票:1回答:1

我创建网格工具库,而且我想包括的功能之一是掰开网格的不相交分区的能力。为此,我试图写,取入一个CGAL::Surface_mesh并返回一个std::vector<CGAL::Surface_mesh>,其中每个元素是输入网格的连接部件的方法。

我看到CGAL有CGAL::Polygon_mesh_processing::connected components功能,但似乎只是分配一个标签给每个脸部,表明它是哪个组件的一部分。我如何使用该操作的结果,构建从每个组面的新CGAL::Surface_mesh用相同的标签吗?

c++ c graph mesh cgal
1个回答
3
投票

这样做的一个方法是使用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]);
 }
© www.soinside.com 2019 - 2024. All rights reserved.