X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2Ffpa%2FFilters%2FRegionGrow.h;h=89790e8ff2600ee2be3fed577c142f85b8231b17;hb=34f4ff5d31c70f1127d43865c61e9f57a7071190;hp=edf77cfe1b6cf2873b9022b61f3bca7325cfe893;hpb=2047276c8f1a02432fbcc7014722d460d6c1e60f;p=FrontAlgorithms.git diff --git a/lib/fpa/Filters/RegionGrow.h b/lib/fpa/Filters/RegionGrow.h index edf77cf..89790e8 100644 --- a/lib/fpa/Filters/RegionGrow.h +++ b/lib/fpa/Filters/RegionGrow.h @@ -5,11 +5,10 @@ #ifndef __fpa__Filters__RegionGrow__h__ #define __fpa__Filters__RegionGrow__h__ -#include -#include #include -#include -#include +#include +#include +#include namespace fpa { @@ -17,31 +16,25 @@ namespace fpa { /** */ - template< class _TTraits > + template< class _TDataInterface > class RegionGrow - : public fpa::Filters::Algorithm< _TTraits > + : public fpa::Filters::QueueAlgorithm< _TDataInterface > { public: - typedef _TTraits TTraits; - fpaTraitsMacro( typename, TTraits ); + typedef _TDataInterface TDataInterface; + typedef fpa::Filters::QueueAlgorithm< TDataInterface > Superclass; + typedef RegionGrow Self; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; - typedef fpa::Filters::Algorithm< TTraits > Superclass; - typedef RegionGrow Self; - typedef itk::SmartPointer< Self > Pointer; - typedef itk::SmartPointer< const Self > ConstPointer; + typedef typename TDataInterface::TTraits TTraits; + fpaTraitsMacro( typename TTraits ); - typedef std::deque< TNode > TQueue; - typedef itk::FunctionBase< TInputValue, bool > TScalarPredicate; - typedef fpa::Functors::BaseVertexFunction< TVertex, bool > TVertexPredicate; - - protected: - itkConceptMacro( - Check_TOutputValue, - ( itk::Concept::IsUnsignedInteger< TOutputValue > ) - ); + typedef itk::FunctionBase< TInputValue, bool > TScalarPredicate; + typedef fpa::Functors::VertexFunction< TVertex, bool > TVertexPredicate; public: - itkTypeMacro( fpa::Filters::RegionGrow, fpa::Filters::Algorithm ); + itkTypeMacro( fpa::Filters::RegionGrow, fpa::Filters::QueueAlgorithm ); itkGetConstObjectMacro( ScalarPredicate, TScalarPredicate ); itkGetObjectMacro( ScalarPredicate, TScalarPredicate ); @@ -63,15 +56,10 @@ namespace fpa RegionGrow( ); virtual ~RegionGrow( ); - virtual void _UpdateOutputValue( TNode& n ) override; - virtual void _QueueClear( ) override; - virtual TNode _QueuePop( ) override; - virtual void _QueuePush( const TNode& n ) override; - virtual unsigned long _QueueSize( ) const override; - virtual void _ComputeOutputValue( TNode& n ) override; + virtual void _PostComputeOutputValue( TNode& n ) override; + virtual void _PreComputeOutputValue( TNode& n ) override; private: - // Purposely not implemented. RegionGrow( const Self& other ); Self& operator=( const Self& other ); @@ -80,7 +68,6 @@ namespace fpa typename TVertexPredicate::Pointer m_VertexPredicate; TOutputValue m_InsideValue; - TQueue m_Queue; }; } // ecapseman @@ -90,6 +77,5 @@ namespace fpa #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION - #endif // __fpa__Filters__RegionGrow__h__ // eof - $RCSfile$