16 #ifndef _mitk_TubeGraph_h
17 #define _mitk_TubeGraph_h
25 #include <boost/graph/undirected_dfs.hpp>
26 #include <boost/graph/visitors.hpp>
27 #include <boost/property_map/property_map.hpp>
29 #include <boost/graph/breadth_first_search.hpp>
30 #include <boost/pending/property.hpp>
45 typedef boost::adjacency_list<boost::vecS,
64 std::vector<TubeDescriptorType> SearchShortestPath(
65 const TubeDescriptorType &startTube,
const TubeDescriptorType &endTube );
70 std::vector<TubeDescriptorType> SearchAllPathBetweenVertices(
71 const TubeDescriptorType &startTube,
const TubeDescriptorType &endTube );
72 std::vector<TubeDescriptorType> SearchPathToPeriphery(
73 const TubeDescriptorType &startTube );
78 TubeDescriptorType GetThickestTube();
94 void RemoveSubGraph(std::vector<TubeDescriptorType> deletedTubes);
96 void SetRootTube(
const TubeDescriptorType &root);
98 TubeDescriptorType GetRootTube();
109 TubeDescriptorType m_RootTube;
114 std::vector<TubeDescriptorType> &pathToPeriphery);
125 : m_OrignialGraph(oldGraph), m_DirectedGraph(newGraph)
131 unsigned int numberSource = boost::source(e, g);
132 unsigned int numberTarget = boost::target(e, g);
133 boost::graph_traits<TubeGraph::DirectedGraphType>::vertex_descriptor source = numberSource;
134 boost::graph_traits<TubeGraph::DirectedGraphType>::vertex_descriptor target = numberTarget;
136 boost::add_edge(source, target, m_DirectedGraph);
boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS > DirectedGraphType
#define MITKTUBEGRAPH_EXPORT
static const TubeDescriptorType ErrorId
Base of all data objects.
Base Class for Tube Graphs.
DataCollection - Class to facilitate loading/accessing structured data.
DirectedGraphBfsVisitor(TubeGraph *oldGraph, TubeGraph::DirectedGraphType &newGraph)
itk::DataObject Superclass
boost::graph_traits< GraphType >::edge_descriptor EdgeDescriptorType
std::pair< VertexDescriptorType, VertexDescriptorType > TubeDescriptorType
boost::adjacency_list< boost::listS, boost::vecS, boost::undirectedS, boost::property< vertex_properties_t, VertexType >, boost::property< edge_properties_t, EdgeType > > GraphType
#define mitkClassMacro(className, SuperClassName)
void tree_edge(TubeGraph::EdgeDescriptorType e, const TubeGraph::GraphType &g)
Template class for undirected graphs.Paramters should be the vertex and edge classes, which contains the information.
boost::graph_traits< GraphType >::vertex_descriptor VertexDescriptorType