1 #ifndef __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__
2 #define __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__
5 #include <itkProcessObject.h>
6 #include <itkSimpleDataObjectDecorator.h>
14 template< class _TMST >
15 class ExtractEndPointsAndBifurcationsFromMinimumSpanningTree
16 : public itk::ProcessObject
19 typedef ExtractEndPointsAndBifurcationsFromMinimumSpanningTree Self;
20 typedef itk::ProcessObject Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
24 typedef _TMST TMinimumSpanningTree;
25 typedef typename _TMST::TVertex TVertex;
27 typedef itk::SimpleDataObjectDecorator< std::vector< TVertex > > TVertices;
31 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree,
36 const TMinimumSpanningTree* GetMinimumSpanningTree( );
37 void SetMinimumSpanningTree( TMinimumSpanningTree* mst );
39 TVertices* GetEndPoints( );
40 TVertices* GetBifurcations( );
41 TVertices* GetCollisions( );
43 virtual void Update( ) override
45 this->GenerateData( );
49 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( );
50 virtual ~ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( );
52 virtual void GenerateData( ) override;
54 virtual void _MarkSkeleton(
55 const TVertex& v, const unsigned long& l
57 virtual void _MarkSphere(
60 const unsigned long& l
62 virtual unsigned long _Mark( const TVertex& v ) = 0;
63 virtual unsigned long _SkeletonMark( const TVertex& v ) = 0;
64 virtual double _Radius( const TVertex& v ) = 0;
66 virtual void _Tmp( ) = 0;
69 // Purposely not implemented
70 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( const Self& other );
71 Self& operator=( const Self& other );
78 #ifndef ITK_MANUAL_INSTANTIATION
79 #include <fpa/Base/ExtractEndPointsAndBifurcationsFromMinimumSpanningTree.hxx>
80 #endif // ITK_MANUAL_INSTANTIATION
82 #endif // __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__