1 #ifndef __fpa__Base__RegionGrow__h__
2 #define __fpa__Base__RegionGrow__h__
5 #include <fpa/Config.h>
6 #include <fpa/Base/Functors/RegionGrow/Base.h>
14 template< class _TSuperclass >
19 typedef RegionGrow Self;
20 typedef _TSuperclass Superclass;
21 typedef itk::SmartPointer< Self > Pointer;
22 typedef itk::SmartPointer< const Self > ConstPointer;
24 typedef typename Superclass::TOutput TOutput;
25 typedef typename Superclass::TVertex TVertex;
27 typedef fpa::Base::Functors::RegionGrow::Base< TVertex > TGrowFunction;
30 typedef typename Superclass::_TQueueNode _TQueueNode;
31 typedef std::queue< _TQueueNode > _TQueue;
34 itkTypeMacro( RegionGrow, Algorithm );
36 itkGetObjectMacro( GrowFunction, TGrowFunction );
37 itkGetConstMacro( InsideValue, TOutput );
38 itkGetConstMacro( OutsideValue, TOutput );
40 itkSetObjectMacro( GrowFunction, TGrowFunction );
41 itkSetMacro( InsideValue, TOutput );
42 itkSetMacro( OutsideValue, TOutput );
46 virtual ~RegionGrow( );
48 virtual bool _UpdateValue(
49 _TQueueNode& v, const _TQueueNode& p
51 virtual unsigned long _QueueSize( ) const override;
52 virtual void _QueueClear( ) override;
53 virtual void _QueuePush( const _TQueueNode& node ) override;
54 virtual _TQueueNode _QueuePop( ) override;
57 // Purposely not defined
58 RegionGrow( const Self& other );
59 Self& operator=( const Self& other );
62 TOutput m_InsideValue;
63 TOutput m_OutsideValue;
65 typename TGrowFunction::Pointer m_GrowFunction;
72 #ifndef ITK_MANUAL_INSTANTIATION
73 # include <fpa/Base/RegionGrow.hxx>
74 #endif // ITK_MANUAL_INSTANTIATION
76 #endif // __fpa__Base__RegionGrow__h__