1 #ifndef __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__
2 #define __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__
5 #include <fpa/Base/MatrixValuesContainer.h>
6 #include <itkProcessObject.h>
15 class ExtractBranchesFromMinimumSpanningTree
16 : public itk::ProcessObject
19 typedef ExtractBranchesFromMinimumSpanningTree Self;
20 typedef itk::ProcessObject Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
24 typedef T TMinimumSpanningTree;
25 typedef typename T::TVertex TVertex;
26 typedef typename T::TVertexCompare TVertexCompare;
27 typedef std::vector< TVertex > TPath;
29 fpa::Base::MatrixValuesContainer< TVertex, TPath, TVertexCompare >
32 typedef std::set< TVertex, TVertexCompare > TEndPoints;
37 ExtractBranchesFromMinimumSpanningTree,
42 const T* GetInput( ) const;
43 void SetInput( const T* tree );
45 TBranches* GetOutput( );
47 void ClearEndPoints( );
48 void AddEndPoint( const TVertex& v );
49 bool HasEndPoint( const TVertex& v ) const;
50 unsigned long GetNumberOfEndPoints( ) const;
53 ExtractBranchesFromMinimumSpanningTree( );
54 virtual ~ExtractBranchesFromMinimumSpanningTree( );
56 virtual void GenerateData( );
59 // Purposely not implemented
60 ExtractBranchesFromMinimumSpanningTree( const Self& other );
61 Self& operator=( const Self& other );
64 TEndPoints m_EndPoints;
71 #include <fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx>
73 #endif // __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__