1 #ifndef __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__
2 #define __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__
5 #include <itkProcessObject.h>
6 #include <cpExtensions/DataStructures/ImageIndexesContainer.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;
28 cpExtensions::DataStructures::ImageIndexesContainer< TVertex::Dimension >
33 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree,
38 const TMinimumSpanningTree* GetMinimumSpanningTree( );
39 void SetMinimumSpanningTree( TMinimumSpanningTree* mst );
41 TVertices* GetEndPoints( );
42 TVertices* GetBifurcations( );
43 TVertices* GetCollisions( );
45 virtual void Update( ) ITK_OVERRIDE
47 this->GenerateData( );
51 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( );
52 virtual ~ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( );
54 virtual void GenerateData( ) ITK_OVERRIDE;
56 virtual void _MarkSkeleton(
57 const TVertex& v, const unsigned long& l
59 virtual void _MarkSphere(
62 const unsigned long& l
64 virtual unsigned long _Mark( const TVertex& v ) = 0;
65 virtual unsigned long _SkeletonMark( const TVertex& v ) = 0;
66 virtual double _Radius( const TVertex& v ) = 0;
68 virtual void _Tmp( ) = 0;
71 // Purposely not implemented
72 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( const Self& other );
73 Self& operator=( const Self& other );
80 #ifndef ITK_MANUAL_INSTANTIATION
81 #include <fpa/Base/ExtractEndPointsAndBifurcationsFromMinimumSpanningTree.hxx>
82 #endif // ITK_MANUAL_INSTANTIATION
84 #endif // __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__