Создание двойственного графа - обход плоской грани - vtkBoostGraphAdapter

Я пытаюсь написать алгоритм, который создает дуал графа. Чтобы проверить, является ли график плоским или нет, я использую тест плоскостности Бойера-Мирволда (реализация Boost) через vtkBoostGraphAdapter, Это прекрасно работает (только на vtkUndirectedGraph -а но пока все нормально). (Boost.org/doc/libs/1_56_0/libs/graph/doc/boyer_myrvold.html)

Чтобы создать дуал, мне нужно пройти грани плоского графа, для которого у меня также есть инструмент Boost, называемый planar_face_traversal_visitor, (boost.org/doc/libs/1_56_0/libs/graph/doc/planar_face_traversal.html) Есть парень Аарон Виндзор, который реализовал соответствующий класс посетителей, способный создать двойник графа в Boost. ( https://github.com/aaw/boost_planar_graph_dual) Это также хорошо работает с использованием только Boost, но я бы хотел также адаптировать эту функцию, используя vtkBoostGraphAdapter,

Вот мой код: http://pastebin.com/g0Mtw6Ph

Это мои ошибки:

  • / usr / local / boost_1_56_0 / boost / property_map / property_map.hpp: 302: 19: Нет действительного перегруженного оператора [] для типа 'const boost:: iterator_property_map, std:: __ 1:: allocator>> *>, boost:: vtkGraphIndexMap, std:: __ 1:: map, std:: __ 1:: allocator>>, std:: __ 1:: map, std:: __ 1:: allocator>> &> '
  • / usr / local / boost_1_56_0 / boost / property_map / property_map.hpp: 309: 5: Нет жизнеспособного перегруженного оператора [] для типа 'const boost:: iterator_property_map, std:: __ 1:: allocator>> *>, boost:: vtkGraphIndexMap, std:: __ 1:: map, std:: __ 1:: allocator>>, std:: __ 1:: map, std:: __ 1:: allocator>> &> '
  • / usr / local / boost_1_56_0 / boost / property_map / property_map.hpp: 302: 19: нет жизнеспособного перегруженного оператора [] для типа 'const boost:: iterator_property_map, std:: __ 1:: allocator> *>, boost:: vtkGraphIndexMap, std:: __ 1:: set, std:: __ 1:: allocator>, std:: __ 1:: set, std:: __ 1:: allocator> &> '
  • / usr / local / boost_1_56_0 / boost / property_map / property_map.hpp: 309: 5: нет жизнеспособного перегруженного оператора [] для типа 'const boost:: iterator_property_map, std:: __ 1:: allocator> *>, boost:: vtkGraphIndexMap, std:: __ 1:: set, std:: __ 1:: allocator>, std:: __ 1:: set, std:: __ 1:: allocator> &> '
  • / usr / local / boost_1_56_0 / boost / planar_dual.hpp: 38: 38: Нет жизнеспособного перегруженного оператора [] для типа 'edge_to_face_map_t' (он же 'iterator_property_map')

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

Любая помощь приветствуется!

Заранее спасибо!

Сцилард

0 ответов

Другие вопросы по тегам