]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/RegionGrow.hxx
Architecture revisited.
[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_RegionGrowFunction( NULL ),
10     m_InsideValue( TScalar( 1 ) ),
11     m_OutsideValue( TScalar( 0 ) )
12 {
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 _Result( TNode& node, const TNode& parent )
26 {
27   if( this->m_RegionGrowFunction.IsNotNull( ) )
28   {
29     bool res = this->m_RegionGrowFunction->Evaluate( node.Vertex );
30     node.Result = ( res )? this->m_InsideValue: this->m_OutsideValue;
31     return( res );
32   }
33   else
34   {
35     node.Result = this->m_OutsideValue;
36     return( false );
37
38   } // fi
39 }
40
41 // -------------------------------------------------------------------------
42 template< class _TSuperclass >
43 void fpa::Base::RegionGrow< _TSuperclass >::
44 _QueueClear( )
45 {
46   this->m_Queue.clear( );
47 }
48
49 // -------------------------------------------------------------------------
50 template< class _TSuperclass >
51 void fpa::Base::RegionGrow< _TSuperclass >::
52 _QueuePush( const TNode& node )
53 {
54   this->m_Queue.push_back( node );
55 }
56
57 // -------------------------------------------------------------------------
58 template< class _TSuperclass >
59 typename fpa::Base::RegionGrow< _TSuperclass >::
60 TNode fpa::Base::RegionGrow< _TSuperclass >::
61 _QueuePop( )
62 {
63   TNode n = this->m_Queue.front( );
64   this->m_Queue.pop_front( );
65   return( n );
66 }
67
68 // -------------------------------------------------------------------------
69 template< class _TSuperclass >
70 bool fpa::Base::RegionGrow< _TSuperclass >::
71 _IsQueueEmpty( ) const
72 {
73   return( this->m_Queue.size( ) == 0 );
74 }
75
76 #endif // __FPA__BASE__REGIONGROW__HXX__
77
78 // eof - $RCSfile$