]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Base/RegionGrow.hxx
Almost there...
[FrontAlgorithms.git] / lib / fpa / Base / RegionGrow.hxx
index 2d554c26beb3e010c1d69d43c2341867891df0a8..f0c45121eb5b2a5ea5e883c415ec0a7507593646 100644 (file)
@@ -2,8 +2,8 @@
 #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 ) ),
@@ -12,15 +12,15 @@ RegionGrow( )
 }
 
 // -------------------------------------------------------------------------
-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
@@ -39,35 +39,34 @@ _ComputeNeighborResult(
 }
 
 // -------------------------------------------------------------------------
-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 )