我的代码出现了分段错误:
auto face_iterator = m.faces_around_target(m.halfedge(v3));
for (auto i=face_iterator.begin(); i!=face_iterator.end(); i++) {
m.remove_face(*i);
}
根据我对文档的理解,只要我不调用collect_garbage,面部只会被标记为被移除。因此不会对索引进行任何更改。发生了什么事?
谢谢。
答案 0 :(得分:1)
这个面确实被标记为已删除但是它的迭代器因删除而失效(请记住,迭代器仅在未删除的元素上运行)。
如doc中所述:从halfedge数据结构中删除face f而不进行任何调整。
您需要使用更高级别的功能,例如CGAL::Euler::remove_face()
。