2

我正在尝试编写一种算法来创建图的对偶。为了检查图形是否是平面的,通过vtkBoostGraphAdapter. 这很好用(仅在vtkUndirectedGraph-s 上,但现在还可以)。(boost.org/doc/libs/1_56_0/libs/graph/doc/boyer_myrvold.html)

要创建对偶,我需要遍历平面图的面,为此我还有一个名为planar_face_traversal_visitor. (boost.org/doc/libs/1_56_0/libs/graph/doc/planar_face_traversal.html) 有一个人,Aaron Windsor,他实现了适当的访问者类,能够在 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/plane_dual.hpp :38:38: 'edge_to_face_map_t' 类型(又名'iterator_property_map')没有可行的重载运算符[ ]

在过去的几天里,我一直在处理这个问题,非常深入地阅读了源代码并尝试了一些事情,但我无法真正弄清楚问题所在。vtkBoostGraphAdapter是否为这种用法做好了适当的准备?

任何形式的帮助表示赞赏!

提前致谢!

西拉德

4

0 回答 0