#ifndef __FPA__IMAGE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__ #define __FPA__IMAGE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__ #include namespace fpa { namespace Image { /** */ template< class _TImage, class _TMST > class ExtractEndPointsAndBifurcationsFromMinimumSpanningTree : public fpa::Base::ExtractEndPointsAndBifurcationsFromMinimumSpanningTree< _TMST > { public: typedef fpa::Base::ExtractEndPointsAndBifurcationsFromMinimumSpanningTree< _TMST > Superclass; typedef ExtractEndPointsAndBifurcationsFromMinimumSpanningTree Self; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef _TImage TImage; typedef typename Superclass::TMinimumSpanningTree TMinimumSpanningTree; typedef typename Superclass::TVertex TVertex; typedef itk::Image< unsigned short, TImage::ImageDimension > TMarkImage; public: itkNewMacro( Self ); itkTypeMacro( ExtractEndPointsAndBifurcationsFromMinimumSpanningTree, fpa::Base::ExtractEndPointsAndBifurcationsFromMinimumSpanningTree ); itkBooleanMacro( SquaredDistanceMap ); itkGetConstMacro( SquaredDistanceMap, bool ); itkSetMacro( SquaredDistanceMap, bool ); public: const TImage* GetCostsImage( ); const TImage* GetDistanceMap( ); void SetCostsImage( TImage* image ); void SetDistanceMap( TImage* image ); protected: ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( ); virtual ~ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( ); virtual void GenerateData( ) ITK_OVERRIDE; virtual void _MarkSkeleton( const TVertex& v, const unsigned long& l ) ITK_OVERRIDE; virtual void _MarkSphere( const TVertex& v, const double& r, const unsigned long& l ) ITK_OVERRIDE; virtual unsigned long _Mark( const TVertex& v ) ITK_OVERRIDE; virtual unsigned long _SkeletonMark( const TVertex& v ) ITK_OVERRIDE; virtual double _Radius( const TVertex& v ) ITK_OVERRIDE; virtual void _Tmp( ) ITK_OVERRIDE { } private: // Purposely not implemented ExtractEndPointsAndBifurcationsFromMinimumSpanningTree( const Self& other ); Self& operator=( const Self& other ); protected: typename TMarkImage::Pointer m_MarkImage; typename TMarkImage::Pointer m_SkeletonImage; bool m_SquaredDistanceMap; }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION #include #endif // ITK_MANUAL_INSTANTIATION #endif // __FPA__IMAGE__EXTRACTENDPOINTSANDBIFURCATIONSFROMMINIMUMSPANNINGTREE__H__ // eof - $RCSfile$