1 #ifndef __FPA__BASE__REGIONGROWWITHMULTIPLECRITERIA__HXX__
2 #define __FPA__BASE__REGIONGROWWITHMULTIPLECRITERIA__HXX__
4 // -------------------------------------------------------------------------
5 template< class V, class R, class VV, class VC, class B >
6 unsigned int fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
7 GetNumberOfMembershipFunctions( ) const
9 return( this->m_Functions.size( ) );
12 // -------------------------------------------------------------------------
13 template< class V, class R, class VV, class VC, class B >
14 void fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
15 ClearMembershipFunctions( )
17 this->m_Functions.clear( );
21 // -------------------------------------------------------------------------
22 template< class V, class R, class VV, class VC, class B >
23 void fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
24 AddMembershipFunction( TMembershipFunction* function )
26 this->m_Functions.push_back( function );
30 // -------------------------------------------------------------------------
31 template< class V, class R, class VV, class VC, class B >
32 fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
33 RegionGrowWithMultipleCriteria( )
38 // -------------------------------------------------------------------------
39 template< class V, class R, class VV, class VC, class B >
40 fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
41 ~RegionGrowWithMultipleCriteria( )
45 // -------------------------------------------------------------------------
46 template< class V, class R, class VV, class VC, class B >
47 void fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
51 this->m_ActualFunction = this->m_Functions.begin( );
54 // -------------------------------------------------------------------------
55 template< class V, class R, class VV, class VC, class B >
56 typename fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
57 _TNode fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
60 _TNode node = this->Superclass::_QueuePop( );
61 if( this->_IsQueueEmpty( ) )
64 this->m_Queue = this->m_AuxiliaryQueue;
66 // Move to next function
67 this->m_ActualFunction++;
73 // -------------------------------------------------------------------------
74 template< class V, class R, class VV, class VC, class B >
75 bool fpa::Base::RegionGrowWithMultipleCriteria< V, R, VV, VC, B >::
76 _CheckMembership( const _TNode& n ) const
78 if( this->m_ActualFunction != this->m_Functions.end( ) )
80 bool ret = ( *( this->m_ActualFunction ) )->Evaluate( n.Vertex );
82 this->m_AuxiliaryQueue.push( n );
89 #endif // __FPA__BASE__REGIONGROWWITHMULTIPLECRITERIA__HXX__