diff --git a/VTK/Infovis/vtkBoostBreadthFirstSearchTree.cxx b/VTK/Infovis/vtkBoostBreadthFirstSearchTree.cxx index c789f6b..ffd145e 100644 --- a/VTK/Infovis/vtkBoostBreadthFirstSearchTree.cxx +++ b/VTK/Infovis/vtkBoostBreadthFirstSearchTree.cxx @@ -52,6 +52,18 @@ vtkStandardNewMacro(vtkBoostBreadthFirstSearchTree); template class bfs_tree_builder : public default_bfs_visitor { +private: + template + struct to_edge { + static Edge& get(Edge& e) { return e; } + }; +#if BOOST_VERSION >= 104800 + template + struct to_edge< boost::detail::reverse_graph_edge_descriptor > { + static Edge& get(boost::detail::reverse_graph_edge_descriptor& e) { return e.underlying_desc; } + }; +#endif + public: bfs_tree_builder() { } @@ -95,7 +107,7 @@ public: // Copy the vertex and edge data from the graph to the tree. tree->GetVertexData()->CopyData(graph->GetVertexData(), v, tree_v); - tree->GetEdgeData()->CopyData(graph->GetEdgeData(), e.Id, tree_e.Id); + tree->GetEdgeData()->CopyData(graph->GetEdgeData(), to_edge::get(e).Id, tree_e.Id); } private: