【发布时间】:2020-02-11 02:37:48
【问题描述】:
我正在尝试遍历表面网格中的所有顶点并删除那些满足特定条件的顶点。删除顶点应该会删除连接的面。
CGAL::Euler::remove_center_vertex 似乎做了我希望的事情,但它使迭代器无效,所以我应该如何从表面网格中删除许多顶点?
【问题讨论】:
我正在尝试遍历表面网格中的所有顶点并删除那些满足特定条件的顶点。删除顶点应该会删除连接的面。
CGAL::Euler::remove_center_vertex 似乎做了我希望的事情,但它使迭代器无效,所以我应该如何从表面网格中删除许多顶点?
【问题讨论】:
您可能想看看简化包: https://doc.cgal.org/latest/Surface_mesh_simplification/index.html
编辑:
您应该首先收集要删除的所有顶点,然后使用收集的顶点对remove_center_vertex() 进行所有调用。或者,您可以查看函数remove_connected_components()。收集与要删除的顶点相关的一组面,并调用该函数以一次删除所有面。请注意,您可能必须调用 expand_face_selection_for_removal() 来防止创建非流形顶点。
【讨论】: