cgal 三角网批量删除点
时间: 2023-10-03 20:03:25 浏览: 52
CGAL 中的三角网数据结构是不可变的,因此要删除点,一般的做法是创建一个新的三角网数据结构,并将所有需要保留的点添加到新的三角网中。这可以通过以下步骤实现:
1. 创建一个新的三角网对象,例如 `Triangulation_2 new_triangulation;`
2. 遍历原始三角网中的所有三角形,将其中包含需要保留的点的三角形在新的三角网中添加,例如:
```c++
for (auto it = old_triangulation.finite_faces_begin(); it != old_triangulation.finite_faces_end(); ++it) {
if (new_triangulation.is_vertex(it->vertex(0)) && new_triangulation.is_vertex(it->vertex(1)) && new_triangulation.is_vertex(it->vertex(2))) {
new_triangulation.insert(it->vertex(0), it->vertex(1), it->vertex(2));
}
}
```
3. 将新的三角网对象赋值给原始三角网对象,例如 `old_triangulation = new_triangulation;`
需要注意的是,这种方法不会真正地删除点,而是创建一个新的三角网对象,其中不包含需要删除的点。如果需要删除点的存储空间,可以使用 C++ 11 中的移动语义,例如 `old_triangulation = std::move(new_triangulation);`。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)