]> Creatis software - FrontAlgorithms.git/commitdiff
... master
authorLeonardo Flórez-Valencia <leonardo.florez@gmail.com>
Fri, 1 Sep 2017 02:36:52 +0000 (21:36 -0500)
committerLeonardo Flórez-Valencia <leonardo.florez@gmail.com>
Fri, 1 Sep 2017 02:36:52 +0000 (21:36 -0500)
lib/fpa/DataStructures/MinimumSpanningTree.h
lib/fpa/DataStructures/MinimumSpanningTree.hxx
lib/fpa/Filters/Dijkstra.h
lib/fpa/Filters/Dijkstra.hxx

index aa5c89ae3e207c38332061705cfe9008bce058f0..7d6ce1df6911c47e3003137a124228ccfa480de4 100644 (file)
@@ -41,7 +41,7 @@ namespace fpa
       void SetCollisions( const TCollisions& collisions );
 
       void ClearSeeds( );
-      void AddSeed( const TVertex& seed );
+      void AddSeed( const TVertex& seed, unsigned long fId );
 
       virtual TVertex GetParent( const TVertex& v ) const = 0;
       virtual void SetParent( const TVertex& v, const TVertex& p ) = 0;
index 2d6a9068a8cfe5b77ba24deac52917624ac4cc7a..c7083d9d53d7044b5eefb1099ca76ba44211ebb3 100644 (file)
@@ -76,6 +76,7 @@ SetCollisions( const TCollisions& collisions )
     } // rof
 
   } // rof
+  this->m_Seeds.resize( N );
   this->Modified( );
 }
 
@@ -91,9 +92,9 @@ ClearSeeds( )
 // -------------------------------------------------------------------------
 template< class _TVertex, class _Superclass >
 void fpa::DataStructures::MinimumSpanningTree< _TVertex, _Superclass >::
-AddSeed( const _TVertex& seed )
+AddSeed( const _TVertex& seed, unsigned long fId )
 {
-  this->m_Seeds.push_back( seed );
+  this->m_Seeds[ fId - 1 ] = seed;
   this->Modified( );
 }
 
index 37cb17e46f11e717f7433d263ede1974b9aa3356..9356ed8c1bb6aa2ac2bfe09d5c314a43be79030e 100644 (file)
@@ -42,6 +42,7 @@ namespace fpa
       Dijkstra( );
       virtual ~Dijkstra( );
 
+      virtual void _AfterGenerateData( ) override;
       virtual void _PostComputeOutputValue( TNode& n ) override;
 
     private:
index 38ed1162e6dfd51dc536b97c8dd1b5b772d4fc0a..e065e74850a1f558229ce7d1f39fb8247b6d61fd 100644 (file)
@@ -20,6 +20,20 @@ fpa::Filters::Dijkstra< _TDataInterface, _TMST >::
 {
 }
 
+// -------------------------------------------------------------------------
+template< class _TDataInterface, class _TMST >
+void fpa::Filters::Dijkstra< _TDataInterface, _TMST >::
+_AfterGenerateData( )
+{
+  this->Superclass::_AfterGenerateData( );
+
+  TMST* mst = this->GetMinimumSpanningTree( );
+  mst->ClearSeeds( );
+  mst->SetCollisions( this->m_Collisions );
+  for( TNode seed: this->GetSeeds( ) )
+    mst->AddSeed( seed.Vertex, seed.FrontId );
+}
+
 // -------------------------------------------------------------------------
 template< class _TDataInterface, class _TMST >
 void fpa::Filters::Dijkstra< _TDataInterface, _TMST >::