1 #ifndef __fpa__Base__RegionGrow__hxx__
2 #define __fpa__Base__RegionGrow__hxx__
4 #include <fpa/Base/Functors/RegionGrow/Tautology.h>
6 // -------------------------------------------------------------------------
7 template< class _TSuperclass >
8 fpa::Base::RegionGrow< _TSuperclass >::
11 m_InsideValue( TOutput( 1 ) ),
12 m_OutsideValue( TOutput( 0 ) )
14 this->m_InitResult = TOutput( 0 );
15 this->SetGrowFunction(
16 fpa::Base::Functors::RegionGrow::Tautology< TVertex >::New( )
20 // -------------------------------------------------------------------------
21 template< class _TSuperclass >
22 fpa::Base::RegionGrow< _TSuperclass >::
27 // -------------------------------------------------------------------------
28 template< class _TSuperclass >
29 bool fpa::Base::RegionGrow< _TSuperclass >::
30 _UpdateValue( _TQueueNode& v, const _TQueueNode& p )
32 if( this->m_GrowFunction.IsNotNull( ) )
34 bool in = this->m_GrowFunction->Evaluate( p.Vertex, v.Vertex );
35 v.Result = ( in )? this->m_InsideValue: this->m_OutsideValue;
40 v.Result = this->m_InitResult;
46 // -------------------------------------------------------------------------
47 template< class _TSuperclass >
48 unsigned long fpa::Base::RegionGrow< _TSuperclass >::
51 return( this->m_Queue.size( ) );
54 // -------------------------------------------------------------------------
55 template< class _TSuperclass >
56 void fpa::Base::RegionGrow< _TSuperclass >::
59 while( this->m_Queue.size( ) > 0 )
63 // -------------------------------------------------------------------------
64 template< class _TSuperclass >
65 void fpa::Base::RegionGrow< _TSuperclass >::
66 _QueuePush( const _TQueueNode& node )
68 this->m_Queue.push( node );
71 // -------------------------------------------------------------------------
72 template< class _TSuperclass >
73 typename fpa::Base::RegionGrow< _TSuperclass >::
74 _TQueueNode fpa::Base::RegionGrow< _TSuperclass >::
77 _TQueueNode f = this->m_Queue.front( );
82 #endif // __fpa__Base__RegionGrow__hxx__