]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/RandomWalker.hxx
...
[FrontAlgorithms.git] / lib / fpa / Image / RandomWalker.hxx
index 9016e970e987d4a253deb5fd36caf7e1db335914..acaa60ab8118e40510e6e509d9b97b63ec617ac6 100644 (file)
@@ -61,8 +61,9 @@ _BeforeGenerateData( )
 
 // -------------------------------------------------------------------------
 template< class _TInputImage, class _TLabelImage, class _TScalar >
-void fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
-_QueueInit( )
+typename fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+TNodes fpa::Image::RandomWalker< _TInputImage, _TLabelImage, _TScalar >::
+_UnifySeeds( )
 {
   this->m_Seeds.clear( );
   const TLabelImage* lbl = this->GetLabels( );
@@ -98,25 +99,31 @@ _QueueInit( )
 
       } // rof
 
-      typename TSeedsInterface::TNode node;
-      node.Vertex = lIt.GetIndex( );
-      node.Parent = lIt.GetIndex( );
-      node.FrontId = lIt.Get( );
-      node.Value = TScalar( 0 );
       if( !is_seed )
       {
-        this->_Mark( lIt.GetIndex( ), lIt.Get( ) );
+        typename TSeedsInterface::TNode node;
+        node.Vertex = lIt.GetIndex( );
+        node.Parent = lIt.GetIndex( );
+        node.FrontId = lIt.Get( );
+        node.Value = TScalar( 0 );
+        this->_Mark( node.Vertex, node.FrontId );
         this->_UpdateOutputValue( node );
       }
       else
-        this->m_Seeds.insert( node );
+      {
+        typename TSeedsInterface::TSeed seed;
+        seed.Vertex = lIt.GetIndex( );
+        seed.IsPoint = false;
+        this->m_Seeds.push_back( seed );
+
+      } // fi
 
     } // fi
 
   } // rof
 
   // Ok, finish initialization
-  this->Superclass::_QueueInit( );
+  return( this->Superclass::_UnifySeeds( ) );
 }
 
 #endif // __fpa__Image__RandomWalker__hxx__