]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Base/Algorithm.hxx
Some visualizaton added
[FrontAlgorithms.git] / lib / fpa / Base / Algorithm.hxx
index 286343f647d589c4e0f44607796a5f8de3c22c08..a58f2a6a047366e2896a302109a6eb887095711d 100644 (file)
@@ -88,9 +88,28 @@ GenerateData( )
   this->m_CollisionSites.clear( );
   this->m_CollisionSites.
     resize( N, _TCollisionSitesRow( N, _TCollision( TVertex( ), false ) ) );
-  this->_BeforeLoop( );
+
+  this->_BeforeMainLoop( );
+  this->_InitializeMarks( );
+  this->_InitializeResults( );
+  this->_InitializeQueue( );
   this->_Loop( );
-  this->_AfterLoop( );
+  this->_AfterMainLoop( );
+  this->InvokeEvent( TEndEvent( ) );
+}
+
+// -------------------------------------------------------------------------
+template< class T, class B >
+void fpa::Base::Algorithm< T, B >::
+_BeforeMainLoop( )
+{
+}
+
+// -------------------------------------------------------------------------
+template< class T, class B >
+void fpa::Base::Algorithm< T, B >::
+_AfterMainLoop( )
+{
 }
 
 // -------------------------------------------------------------------------
@@ -112,9 +131,7 @@ template< class T, class B >
 void fpa::Base::Algorithm< T, B >::
 _Loop( )
 {
-  this->_InitializeMarks( );
-  this->_InitializeResults( );
-  this->_InitializeQueue( );
+  this->_BeforeLoop( );
   while( !( this->_IsQueueEmpty( ) ) )
   {
     _TNode n = this->_QueuePop( );
@@ -171,7 +188,7 @@ _Loop( )
     } // fi
 
   } // elihw
-  this->InvokeEvent( TEndEvent( ) );
+  this->_AfterLoop( );
 }
 
 // -------------------------------------------------------------------------
@@ -279,10 +296,7 @@ _Parent( const TVertex& v ) const
 {
   typename _TMarks::const_iterator mIt = this->m_Marks.find( v );
   if( mIt == this->m_Marks.end( ) )
-  {
-    TVertex v;
-    return( v );
-  }
+    return( TVertex( ) );
   else
     return( mIt->second.Parent );
 }