#ifndef __fpa__Base__RegionGrow__h__ #define __fpa__Base__RegionGrow__h__ #include #include #include namespace fpa { namespace Base { /** */ template< class _TSuperclass > class RegionGrow : public fpa::Base::QueueAlgorithm< _TSuperclass > { public: typedef RegionGrow Self; typedef fpa::Base::QueueAlgorithm< _TSuperclass > Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef typename Superclass::TOutput TOutput; typedef typename Superclass::TVertex TVertex; typedef fpa::Base::Functors::RegionGrow::Base< TVertex, TOutput > TGrowFunction; protected: typedef typename Superclass::_TQueueNode _TQueueNode; public: itkTypeMacro( RegionGrow, Algorithm ); public: TGrowFunction* GetGrowFunction( ); const TGrowFunction* GetGrowFunction( ) const; TOutput GetInsideValue( ) const; TOutput GetOutsideValue( ) const; void SetGrowFunction( TGrowFunction* f ); void SetInsideValue( const TOutput& v ); void SetOutsideValue( const TOutput& v ); protected: RegionGrow( ); virtual ~RegionGrow( ); virtual bool _UpdateValue( _TQueueNode& v, const _TQueueNode& p ) override; private: // Purposely not defined RegionGrow( const Self& other ); Self& operator=( const Self& other ); }; } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Base__RegionGrow__h__ // eof - $RCSfile$