#define __FPA__BASE__REGIONGROWING__HXX__
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-fpa::Base::RegionGrow< V, C, R, B >::
+template< class V, class C, class R, class VC, class B >
+fpa::Base::RegionGrow< V, C, R, VC, B >::
RegionGrow( )
: Superclass( ),
m_InsideValue( TResult( 1 ) ),
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-fpa::Base::RegionGrow< V, C, R, B >::
+template< class V, class C, class R, class VC, class B >
+fpa::Base::RegionGrow< V, C, R, VC, B >::
~RegionGrow( )
{
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-bool fpa::Base::RegionGrow< V, C, R, B >::
+template< class V, class C, class R, class VC, class B >
+bool fpa::Base::RegionGrow< V, C, R, VC, B >::
_ComputeNeighborResult(
TResult& result, const TVertex& neighbor, const TVertex& parent
) const
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-bool fpa::Base::RegionGrow< V, C, R, B >::
+template< class V, class C, class R, class VC, class B >
+bool fpa::Base::RegionGrow< V, C, R, VC, B >::
_IsQueueEmpty( ) const
{
return( this->m_Queue.empty( ) );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-void fpa::Base::RegionGrow< V, C, R, B >::
-_QueuePush( const _TNode& n )
+template< class V, class C, class R, class VC, class B >
+void fpa::Base::RegionGrow< V, C, R, VC, B >::
+_QueuePush( const TVertex& v, const _TNode& n )
{
- this->m_Queue.push( n );
+ this->m_Queue.push( std::pair< TVertex, _TNode >( v, n ) );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-typename fpa::Base::RegionGrow< V, C, R, B >::
-_TNode fpa::Base::RegionGrow< V, C, R, B >::
-_QueuePop( )
+template< class V, class C, class R, class VC, class B >
+void fpa::Base::RegionGrow< V, C, R, VC, B >::
+_QueuePop( TVertex& v, _TNode& n )
{
- _TNode n = this->m_Queue.front( );
+ v = this->m_Queue.front( ).first;
+ n = this->m_Queue.front( ).second;
this->m_Queue.pop( );
- return( n );
}
// -------------------------------------------------------------------------
-template< class V, class C, class R, class B >
-void fpa::Base::RegionGrow< V, C, R, B >::
+template< class V, class C, class R, class VC, class B >
+void fpa::Base::RegionGrow< V, C, R, VC, B >::
_QueueClear( )
{
while( this->m_Queue.size( ) > 0 )