aboutsummaryrefslogtreecommitdiff
blob: 30a0e9a4c6064716d1b64f9601a1cbde97483df4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
diff --git a/Infovis/vtkBoostBreadthFirstSearchTree.cxx b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
index c789f6b..13e7cb6 100644
--- a/Infovis/vtkBoostBreadthFirstSearchTree.cxx
+++ b/Infovis/vtkBoostBreadthFirstSearchTree.cxx
@@ -47,6 +47,21 @@ using namespace boost;
 vtkStandardNewMacro(vtkBoostBreadthFirstSearchTree);
 
 
+#if BOOST_VERSION >= 104800      // Boost 1.48.x
+namespace {
+  vtkIdType unwrap_edge_id(vtkEdgeType const &e) {
+    return e.Id;
+  }
+  vtkIdType unwrap_edge_id(boost::detail::reverse_graph_edge_descriptor<vtkEdgeType> const &e) {
+# if BOOST_VERSION == 104800
+    return e.underlying_desc.Id;
+# else
+    return e.underlying_descx.Id;
+# endif
+  }
+}
+#endif
+
 // Redefine the bfs visitor, the only visitor we
 // are using is the tree_edge visitor.
 template <typename IdMap>
@@ -95,7 +106,12 @@ public:
 
     // Copy the vertex and edge data from the graph to the tree.
     tree->GetVertexData()->CopyData(graph->GetVertexData(), v, tree_v);
+#if BOOST_VERSION < 104800      // Boost 1.48.x
     tree->GetEdgeData()->CopyData(graph->GetEdgeData(), e.Id, tree_e.Id);
+#else
+    tree->GetEdgeData()->CopyData(graph->GetEdgeData(),
+                                  unwrap_edge_id(e), tree_e.Id);
+#endif
   }
 
 private: