我试图编写一个创建图形对偶的算法。要检查图形是否为平面,我通过vtkBoostGraphAdapter
使用 Boyer-Myrvold平面度测试(Boost实现)。这样可以正常工作(仅限于vtkUndirectedGraph
- s,但现在还可以)。
(boost.org/doc/libs/1_56_0/libs/graph/doc/boyer_myrvold.html)
要创建双重我需要遍历平面图的面,我还有一个名为planar_face_traversal_visitor
的Boost工具。
(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 /本地/ boost_1_56_0 /升压/ property_map /的 property_map.hpp :302:19:
类型&#const;没有可行的重载operator []
提高:: iterator_property_map,
std :: __ 1 :: allocator> >
*&gt ;, 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的可行重载operator []
提高:: iterator_property_map,
std :: __ 1 :: allocator> >
*&gt ;, boost :: vtkGraphIndexMap,std :: __ 1 :: map,std :: __ 1 :: allocator> >,std :: __ 1 :: map,std :: __ 1 :: allocator> > &安培;>'
- 的/ usr /本地/ boost_1_56_0 /升压/ property_map /的 property_map.hpp :302:19:
类型&#const;没有可行的重载operator []
boost :: iterator_property_map,std :: __ 1 :: allocator> *>中
boost :: vtkGraphIndexMap,std :: __ 1 :: set,std :: __ 1 :: allocator&gt ;,std :: __ 1 :: set,std :: __ 1 :: allocator> &安培;>'
- / usr / local / boost_1_56_0 / boost / property_map / property_map.hpp :309:5:否
类型' const的可行重载operator []
boost :: iterator_property_map,std :: __ 1 :: allocator> *>中
boost :: vtkGraphIndexMap,std :: __ 1 :: set,std :: __ 1 :: allocator&gt ;,std :: __ 1 :: set,std :: __ 1 :: allocator> &安培;>'
- / usr / local / boost_1_56_0 / boost / planar_dual.hpp :38:38:没有可行性
类型' edge_to_face_map_t'重载operator [] (又名
' iterator_property_map&#39)
我一直在处理这个问题,在过去的几天内深入阅读源代码并尝试了几件事,但我无法弄清问题是什么。 vtkBoostGraphAdapter
是否为这种用法做好了准备?
任何形式的帮助表示赞赏!
提前致谢!
西拉德