#ifndef __fpa__Image__MinimumSpanningTree__h__ #define __fpa__Image__MinimumSpanningTree__h__ #include #include #include namespace fpa { namespace Image { /** */ template< unsigned int _VDim > class MinimumSpanningTree : public fpa::Base::MinimumSpanningTree< itk::Index< _VDim >, cpExtensions::DataStructures::PolyLineParametricPath< _VDim >, itk::Image< itk::Offset< _VDim >, _VDim > > { public: typedef itk::Index< _VDim > TVertex; typedef cpExtensions::DataStructures::PolyLineParametricPath< _VDim > TPath; typedef itk::Offset< _VDim > TOffset; typedef itk::Image< TOffset, _VDim > TImage; typedef fpa::Base::MinimumSpanningTree< TVertex, TPath, TImage > Superclass; typedef MinimumSpanningTree Self; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; public: itkNewMacro( Self ); itkTypeMacro( fpa::Image::MinimumSpanningTree, fpa::Base::MinimumSpanningTree ); public: virtual TVertex GetParent( const TVertex& v ) const override; virtual void SetParent( const TVertex& v, const TVertex& p ) override; virtual void GetPath( typename TPath::Pointer& path, const TVertex& a ) const override; virtual void GetPath( typename TPath::Pointer& path, const TVertex& a, const TVertex& b ) const override; 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$