X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FImage%2FMinimumSpanningTree.h;h=4a4e0e62bbbc53ebbc4cd5830ca6ec1d005c144e;hb=026b2fe203089e1917ab78ebafb3131f147223f5;hp=0d26c20a0df5969835af9f320f11b5183f2a7123;hpb=8fafb83c41ab35dfc25eb637170882a612924433;p=FrontAlgorithms.git diff --git a/lib/fpa/Image/MinimumSpanningTree.h b/lib/fpa/Image/MinimumSpanningTree.h index 0d26c20..4a4e0e6 100644 --- a/lib/fpa/Image/MinimumSpanningTree.h +++ b/lib/fpa/Image/MinimumSpanningTree.h @@ -1,73 +1,53 @@ -#ifndef __FPA__IMAGE__MINIMUMSPANNINGTREE__H__ -#define __FPA__IMAGE__MINIMUMSPANNINGTREE__H__ +#ifndef __fpa__Image__MinimumSpanningTree__h__ +#define __fpa__Image__MinimumSpanningTree__h__ -#include -#include #include +#include +#include namespace fpa { namespace Image { - template< unsigned int _NDim > - struct MinimumSpanningTreeData - { - typedef itk::Offset< _NDim > TOffset; - TOffset Parent; - short FrontId; - double GlobalCost; - }; - /** */ - template< unsigned int _NDim > + template< unsigned int _VDim > class MinimumSpanningTree - : public fpa::Base::MinimumSpanningTree< itk::Image< MinimumSpanningTreeData< _NDim >, _NDim >, itk::Index< _NDim > > + : public fpa::Base::MinimumSpanningTree< itk::Index< _VDim >, cpExtensions::DataStructures::PolyLineParametricPath< _VDim >, itk::Image< itk::Offset< _VDim >, _VDim > > { public: - typedef MinimumSpanningTreeData< _NDim > TInfo; - typedef itk::Image< TInfo, _NDim > TBase; - typedef itk::Index< _NDim > TVertex; - typedef fpa::Base::MinimumSpanningTree< TBase, TVertex > Superclass; - typedef MinimumSpanningTree Self; - typedef itk::SmartPointer< Self > Pointer; - typedef itk::SmartPointer< const Self > ConstPointer; - - typedef typename Superclass::TVertices TVertices; - typedef typename Superclass::TPoint TPoint; - typedef typename Superclass::TPoints TPoints; - itkStaticConstMacro( Dimension, unsigned int, _NDim ); + 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( MinimumSpanningTree, _TSuperclass ); + itkTypeMacro( + fpa::Image::MinimumSpanningTree, fpa::Base::MinimumSpanningTree + ); public: - void CopyMetaData( itk::ImageBase< _NDim >* infoImage ); - virtual void SetNode( - const TVertex& v, - const TVertex& p, - const short& fid, - const double& cost - ) override; - virtual void Clear( ) override; + virtual TVertex GetParent( const TVertex& v ) const fpa_OVERRIDE; + virtual void SetParent( const TVertex& v, const TVertex& p ) fpa_OVERRIDE; - virtual TPoints GetEuclideanPath( const TVertex& a ) const override; - virtual TPoints GetEuclideanPath( - const TVertex& a, const TVertex& b - ) const override; - virtual bool IsDefinedInEuclideanSpace( ) const override; + virtual void GetPath( + typename TPath::Pointer& path, const TVertex& a + ) const fpa_OVERRIDE; + virtual void GetPath( + typename TPath::Pointer& path, const TVertex& a, const TVertex& b + ) const fpa_OVERRIDE; protected: MinimumSpanningTree( ); virtual ~MinimumSpanningTree( ); - virtual bool _HasVertex( const TVertex& a ) const override; - virtual short _FrontId( const TVertex& a ) const override; - virtual void _Path( TVertices& path, const TVertex& a ) const override; - private: - // Purposely not implemented + // Purposely not defined MinimumSpanningTree( const Self& other ); Self& operator=( const Self& other ); }; @@ -77,9 +57,9 @@ namespace fpa } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION -#include +# include #endif // ITK_MANUAL_INSTANTIATION -#endif // __FPA__IMAGE__MINIMUMSPANNINGTREE__H__ +#endif // __fpa__Image__MinimumSpanningTree__h__ // eof - $RCSfile$