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;
28 fpa::Base::MatrixValuesContainer< TVertex, bool, TVertexCompare >
31 typedef std::set< TVertex, TVertexCompare > TEndPoints;
36 ExtractBranchesFromMinimumSpanningTree,
41 const T* GetInput( ) const;
42 void SetInput( const T* tree );
44 TBranches* GetOutput( );
46 void ClearEndPoints( );
47 void AddEndPoint( const TVertex& v );
48 bool HasEndPoint( const TVertex& v ) const;
49 unsigned long GetNumberOfEndPoints( ) const;
52 ExtractBranchesFromMinimumSpanningTree( );
53 virtual ~ExtractBranchesFromMinimumSpanningTree( );
55 virtual void GenerateData( );
58 // Purposely not implemented
59 ExtractBranchesFromMinimumSpanningTree( const Self& other );
60 Self& operator=( const Self& other );
63 TEndPoints m_EndPoints;
70 #include <fpa/Base/ExtractBranchesFromMinimumSpanningTree.hxx>
72 #endif // __FPA__BASE__EXTRACTBRANCHESFROMMINIMUMSPANNINGTREE__H__