c++ - CGAL:在浏览平面 map 时使用 `Mark`类型

标签 c++ computational-geometry cgal

有关CGAL::Nef_polyhedron_2<T>::Topological_explorer的CGAL在线文档(请参阅here)提到了Mark类型和许多函数,这些函数返回此类型的值:

const Mark &    mark (Vertex_const_handle v)
    returns the mark of v.

const Mark &    mark (Halfedge_const_handle e)
    returns the mark of e.

const Mark &    mark (Face_const_handle f)
    returns the mark of f.

该文档说:“平面图是属性,对于每个对象,我们都将属性信息类型为mark(u)Mark归为己有。Mark符合可分配,默认可构造和等比的概念。”

这种类型和值背后的想法是什么?我应该如何使用它们?

最佳答案

当您要探索平面 map 时,需要遍历元素(半边线和/或顶点和/或面)。例如,您可以将深度搜索优先算法用于图形遍历。

在这种遍历期间,通常有必要测试是否已经发现元素。这归功于 bool(boolean) 值标记,当发现一个元素时, bool(boolean) 值设置为true。

在Nef_2中,默认情况下,Mark是一个 bool(boolean) 值,但是由于未记录的模板参数(请参见here),可以更改它。例如,如果要存储元素发现的时间,则可以使用int。

另请参见this example

关于c++ - CGAL:在浏览平面 map 时使用 `Mark`类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62456690/

相关文章:

c# - 如果需要,我将如何以编程方式访问或打开交换 edb 文件?

c# - 如何判断一条线是否与 C# 中的多边形相交?

c++ - 在给定的 MxN 板中找到仅由 2 种字母组成的最大矩形区域

c++ - CGAL Delaunay 三角剖分 - 第二最近邻

cgal - 如何使用tree.any_intersection获取三角形索引

c++ - 使用 C++ 和 openssl 计算 STREEBOG256 和 STREEBOG512 哈希值

c++ - 如何在 Windows 上使用 Eclipse 交叉编译树莓派

C++ RTTI 注册表模式

c++ - 找到一组曲线的凸包络的算法或想法是什么?

c++ - 如何通过CGAL生成3D网格的剖 View