1 #ifndef __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__
2 #define __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__
6 #include <itkProcessObject.h>
7 #include <itkSimpleDataObjectDecorator.h>
8 #include <cpExtensions/DataStructures/ImageIndexesContainer.h>
16 template< class _TMST >
17 class ExtractEndPointsAndBifurcationsFromMinimumSpanningTree
18 : public itk::ProcessObject
21 typedef ExtractEndPointsAndBifurcationsFromMinimumSpanningTree Self;
22 typedef itk::ProcessObject Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
26 typedef _TMST TMinimumSpanningTree;
27 typedef typename _TMST::TVertex TVertex;
28 typedef std::pair< TVertex, TVertex > TBranch;
29 typedef itk::SimpleDataObjectDecorator< std::vector< TBranch > > TBranches;
32 cpExtensions::DataStructures::ImageIndexesContainer< TVertex::Dimension >
37 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree,
42 const TMinimumSpanningTree* GetMinimumSpanningTree( );
43 void SetMinimumSpanningTree( TMinimumSpanningTree* mst );
45 TVertices* GetEndPoints( );
46 TVertices* GetBifurcations( );
47 TVertices* GetCollisions( );
48 TBranches* GetBranches( );
50 virtual void Update( ) ITK_OVERRIDE
52 this->GenerateData( );
56 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( );
57 virtual ~ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( );
59 virtual void GenerateData( ) ITK_OVERRIDE;
61 virtual void _MarkSkeleton(
62 const TVertex& v, const unsigned long& l
64 virtual void _MarkSphere(
67 const unsigned long& l
69 virtual unsigned long _Mark( const TVertex& v ) = 0;
70 virtual unsigned long _SkeletonMark( const TVertex& v ) = 0;
71 virtual double _Radius( const TVertex& v ) = 0;
73 virtual void _Tmp( ) = 0;
76 // Purposely not implemented
77 ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( const Self& other );
78 Self& operator=( const Self& other );
85 #ifndef ITK_MANUAL_INSTANTIATION
86 #include <fpa/Base/ExtractEndPointsAndBifurcationsFromMinimumSpanningTree.hxx>
87 #endif // ITK_MANUAL_INSTANTIATION
89 #endif // __FPA__BASE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__