]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Base/RegionGrow.hxx
Major refactoring
[FrontAlgorithms.git] / lib / fpa / Base / RegionGrow.hxx
1 #ifndef __FPA__BASE__REGIONGROWING__HXX__
2 #define __FPA__BASE__REGIONGROWING__HXX__
3
4 // -------------------------------------------------------------------------
5 template< class V, class C, class R, class B >
6 fpa::Base::RegionGrow< V, C, R, B >::
7 RegionGrow( )
8   : Superclass( ),
9     m_InsideValue( TResult( 1 ) ),
10     m_OutsideValue( TResult( 0 ) )
11 {
12 }
13
14 // -------------------------------------------------------------------------
15 template< class V, class C, class R, class B >
16 fpa::Base::RegionGrow< V, C, R, B >::
17 ~RegionGrow( )
18 {
19 }
20
21 // -------------------------------------------------------------------------
22 template< class V, class C, class R, class B >
23 bool fpa::Base::RegionGrow< V, C, R, B >::
24 _ComputeNeighborResult(
25   TResult& result, const TVertex& neighbor, const TVertex& parent
26   ) const
27 {
28   if( this->_CheckMembership( neighbor ) )
29   {
30     result = this->m_InsideValue;
31     return( true );
32   }
33   else
34   {
35     result = this->m_OutsideValue;
36     return( false );
37
38   } // fi
39 }
40
41 // -------------------------------------------------------------------------
42 template< class V, class C, class R, class B >
43 bool fpa::Base::RegionGrow< V, C, R, B >::
44 _IsQueueEmpty( ) const
45 {
46   return( this->m_Queue.empty( ) );
47 }
48
49 // -------------------------------------------------------------------------
50 template< class V, class C, class R, class B >
51 void fpa::Base::RegionGrow< V, C, R, B >::
52 _QueuePush( const _TNode& n )
53 {
54   this->m_Queue.push( n );
55 }
56
57 // -------------------------------------------------------------------------
58 template< class V, class C, class R, class B >
59 typename fpa::Base::RegionGrow< V, C, R, B >::
60 _TNode fpa::Base::RegionGrow< V, C, R, B >::
61 _QueuePop( )
62 {
63   _TNode n = this->m_Queue.front( );
64   this->m_Queue.pop( );
65   return( n );
66 }
67
68 // -------------------------------------------------------------------------
69 template< class V, class C, class R, class B >
70 void fpa::Base::RegionGrow< V, C, R, B >::
71 _QueueClear( )
72 {
73   while( this->m_Queue.size( ) > 0 )
74     this->m_Queue.pop( );
75 }
76
77 #endif // __FPA__BASE__REGIONGROWING__HXX__
78
79 // eof - $RCSfile$