CGAL: использование типа `Mark` при изучении карты самолета - PullRequest
1 голос
/ 18 июня 2020

В онлайн-документации CGAL о CGAL::Nef_polyhedron_2<T>::Topological_explorer (см. здесь ) упоминается тип 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. Отметка соответствует концепциям назначаемого, конструктивного по умолчанию и равно-сопоставимого».

Что идея, лежащая в основе этого типа и ценностей? Как мне их использовать?

1 Ответ

1 голос
/ 19 июня 2020

Когда вы хотите исследовать карту плоскости, вам нужно перемещаться по элементам (половинным ребрам и / или вершинам и / или граням). Например, вы можете использовать алгоритм поиска в глубину для обхода графа.

Во время такого обхода часто необходимо проверить, обнаружен ли уже элемент или нет. Это может быть достигнуто благодаря логической метке, которая устанавливается в значение true при обнаружении элемента.

По умолчанию в Nef_2 Mark является логическим значением, но это можно изменить благодаря недокументированному параметру шаблона (см. здесь ). Например, вы можете использовать int, если хотите сохранить время, когда элемент был обнаружен.

См. Также этот пример .

...