13 #ifndef _mitk_TubeGraph_h 14 #define _mitk_TubeGraph_h 23 # pragma warning(push) 24 # pragma warning(disable: 4172) // boost/graph/named_function_params.hpp(240): returning address of local variable or temporary 27 #include <boost/graph/undirected_dfs.hpp> 28 #include <boost/graph/visitors.hpp> 29 #include <boost/property_map/property_map.hpp> 31 #include <boost/graph/breadth_first_search.hpp> 32 #include <boost/pending/property.hpp> 51 typedef boost::adjacency_list<boost::vecS,
70 std::vector<TubeDescriptorType> SearchShortestPath(
71 const TubeDescriptorType &startTube,
const TubeDescriptorType &endTube );
76 std::vector<TubeDescriptorType> SearchAllPathBetweenVertices(
77 const TubeDescriptorType &startTube,
const TubeDescriptorType &endTube );
78 std::vector<TubeDescriptorType> SearchPathToPeriphery(
79 const TubeDescriptorType &startTube );
84 TubeDescriptorType GetThickestTube();
100 void RemoveSubGraph(std::vector<TubeDescriptorType> deletedTubes);
102 void SetRootTube(
const TubeDescriptorType &root);
104 TubeDescriptorType GetRootTube();
115 TubeDescriptorType m_RootTube;
120 std::vector<TubeDescriptorType> &pathToPeriphery);
131 : m_OrignialGraph(oldGraph), m_DirectedGraph(newGraph)
137 unsigned int numberSource = boost::source(e, g);
138 unsigned int numberTarget = boost::target(e, g);
139 boost::graph_traits<TubeGraph::DirectedGraphType>::vertex_descriptor source = numberSource;
140 boost::graph_traits<TubeGraph::DirectedGraphType>::vertex_descriptor target = numberTarget;
142 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