1 #ifndef __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__
2 #define __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__
5 #include <fpa/Base/VectorValuesContainer.h>
6 #include <itkProcessObject.h>
7 #include <itkPolyLineParametricPath.h>
16 class ExtractBranchesFromMinimumSpanningTree
17 : public itk::ProcessObject
20 typedef ExtractBranchesFromMinimumSpanningTree Self;
21 typedef itk::ProcessObject Superclass;
22 typedef itk::SmartPointer< Self > Pointer;
23 typedef itk::SmartPointer< const Self > ConstPointer;
25 typedef T TMinimumSpanningTree;
26 typedef typename T::TVertex TVertex;
27 typedef typename T::TVertexCompare TVertexCompare;
28 typedef itk::PolyLineParametricPath< TVertex::Dimension > TPath;
29 typedef std::set< TVertex, TVertexCompare > TEndPoints;
32 fpa::Base::VectorValuesContainer< typename TPath::Pointer >
38 ExtractBranchesFromMinimumSpanningTree,
43 const T* GetInput( ) const;
44 void SetInput( const T* tree );
48 void ClearEndPoints( );
49 void AddEndPoint( const TVertex& v );
50 bool HasEndPoint( const TVertex& v ) const;
51 unsigned long GetNumberOfEndPoints( ) const;
54 ExtractBranchesFromMinimumSpanningTree( );
55 virtual ~ExtractBranchesFromMinimumSpanningTree( );
57 virtual void GenerateData( );
60 // Purposely not implemented
61 ExtractBranchesFromMinimumSpanningTree( const Self& other );
62 Self& operator=( const Self& other );
65 TEndPoints m_EndPoints;
72 #include <fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx>
74 #endif // __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__