]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/RegionGrow.hxx
b0beaf29db7e2fc38477df7a13f95474ec5b5bcb
[FrontAlgorithms.git] / lib / fpa / Base / RegionGrow.hxx
1 #ifndef __fpa__Base__RegionGrow__hxx__
2 #define __fpa__Base__RegionGrow__hxx__
3
4 // -------------------------------------------------------------------------
5 template< class _TSuperclass >
6 fpa::Base::RegionGrow< _TSuperclass >::
7 RegionGrow( )
8   : Superclass( ),
9     m_InsideValue( TOutput( 1 ) ),
10     m_OutsideValue( TOutput( 0 ) )
11 {
12   this->m_InitResult = TOutput( 0 );
13 }
14
15 // -------------------------------------------------------------------------
16 template< class _TSuperclass >
17 fpa::Base::RegionGrow< _TSuperclass >::
18 ~RegionGrow( )
19 {
20 }
21
22 // -------------------------------------------------------------------------
23 template< class _TSuperclass >
24 bool fpa::Base::RegionGrow< _TSuperclass >::
25 _UpdateValue( _TQueueNode& v, const _TQueueNode& p )
26 {
27   if( this->m_GrowFunction.IsNotNull( ) )
28   {
29     bool in = this->m_GrowFunction->Evaluate( p.Vertex, v.Vertex );
30     v.Result = ( in )? this->m_InsideValue: this->m_OutsideValue;
31     return( in );
32   }
33   else
34   {
35     v.Result = this->m_InitResult;
36     return( false );
37
38   } // fi
39 }
40
41 // -------------------------------------------------------------------------
42 template< class _TSuperclass >
43 unsigned long fpa::Base::RegionGrow< _TSuperclass >::
44 _QueueSize( ) const
45 {
46   return( this->m_Queue.size( ) );
47 }
48
49 // -------------------------------------------------------------------------
50 template< class _TSuperclass >
51 void fpa::Base::RegionGrow< _TSuperclass >::
52 _QueueClear( )
53 {
54   while( this->m_Queue.size( ) > 0 )
55     this->m_Queue.pop( );
56 }
57
58 // -------------------------------------------------------------------------
59 template< class _TSuperclass >
60 void fpa::Base::RegionGrow< _TSuperclass >::
61 _QueuePush( const _TQueueNode& node )
62 {
63   this->m_Queue.push( node );
64 }
65
66 // -------------------------------------------------------------------------
67 template< class _TSuperclass >
68 typename fpa::Base::RegionGrow< _TSuperclass >::
69 _TQueueNode fpa::Base::RegionGrow< _TSuperclass >::
70 _QueuePop( )
71 {
72   _TQueueNode f = this->m_Queue.front( );
73   this->m_Queue.pop( );
74   return( f );
75 }
76
77 #endif // __fpa__Base__RegionGrow__hxx__
78
79 // eof - $RCSfile$