首页 > 解决方案 > CGAL:在探索平面地图时使用“标记”类型

问题描述

CGAL::Nef_polyhedron_2<T>::Topological_explorer关于(请参阅此处)的 CGAL 在线文档提到了一种类型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。标记符合可分配、可默认构造和可等比的概念。”

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

标签: c++computational-geometrycgal

解决方案


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

在这样的遍历过程中,经常需要测试一个元素是否已经被发现。这可以通过布尔标记来实现,该标记在发现元素时设置为 true。

默认情况下,在 Nef_2 中,Mark 是一个布尔值,但这可以通过未记录的模板参数进行更改(请参见此处)。例如,如果要存储发现元素的时间,可以使用 int。

另请参阅此示例


推荐阅读