#ifndef __fpa__Image__MinimumSpanningTree__h__ #define __fpa__Image__MinimumSpanningTree__h__ #include #include namespace fpa { namespace Image { /** */ template< unsigned int _VDim > class MinimumSpanningTree : public fpa::Base::MinimumSpanningTree< itk::Index< _VDim >, itk::Image< itk::Offset< _VDim >, _VDim > > { public: typedef itk::Index< _VDim > TVertex; typedef itk::Offset< _VDim > TOffset; typedef itk::Image< TOffset, _VDim > TImage; typedef fpa::Base::MinimumSpanningTree< TVertex, TImage > Superclass; typedef MinimumSpanningTree Self; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef typename Superclass::TVertices TVertices; typedef typename TImage::PointType TPoint; typedef std::deque< TPoint > TPoints; public: itkNewMacro( Self ); itkTypeMacro( fpa::Image::MinimumSpanningTree, fpa::Base::MinimumSpanningTree ); public: virtual TVertex GetParent( const TVertex& v ) const fpa_OVERRIDE; virtual void SetParent( const TVertex& v, const TVertex& p ) fpa_OVERRIDE; TPoints GetEuclideanPath( const TVertex& a ) const; TPoints GetEuclideanPath( const TVertex& a, const TVertex& b ) const; protected: MinimumSpanningTree( ); virtual ~MinimumSpanningTree( ); private: // Purposely not defined MinimumSpanningTree( const Self& other ); Self& operator=( const Self& other ); }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Image__MinimumSpanningTree__h__ // eof - $RCSfile$