]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Filters/Dijkstra.hxx
...
[FrontAlgorithms.git] / lib / fpa / Filters / Dijkstra.hxx
diff --git a/lib/fpa/Filters/Dijkstra.hxx b/lib/fpa/Filters/Dijkstra.hxx
new file mode 100644 (file)
index 0000000..a27669a
--- /dev/null
@@ -0,0 +1,48 @@
+// =========================================================================
+// @author Leonardo Florez Valencia
+// @email florez-l@javeriana.edu.co
+// =========================================================================
+#ifndef __fpa__Filters__Dijkstra__hxx__
+#define __fpa__Filters__Dijkstra__hxx__
+
+// -------------------------------------------------------------------------
+template< class _TTraits, class _TMST >
+fpa::Filters::Dijkstra< _TTraits, _TMST >::
+Dijkstra( )
+  : Superclass( )
+{
+  fpaFilterOutputConfigureMacro( MinimumSpanningTree, TMST );
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits, class _TMST >
+fpa::Filters::Dijkstra< _TTraits, _TMST >::
+~Dijkstra( )
+{
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits, class _TMST >
+void fpa::Filters::Dijkstra< _TTraits, _TMST >::
+_AfterGenerateData( )
+{
+  this->Superclass::_AfterGenerateData( );
+
+  TMST* mst = this->GetMinimumSpanningTree( );
+  mst->ClearSeeds( );
+  mst->SetCollisions( this->m_Collisions );
+  for( TNode n: this->GetSeeds( ) )
+    mst->AddSeed( n.Vertex );
+}
+
+// -------------------------------------------------------------------------
+template< class _TTraits, class _TMST >
+void fpa::Filters::Dijkstra< _TTraits, _TMST >::
+_UpdateOutputValue( TNode& n )
+{
+  this->Superclass::_UpdateOutputValue( n );
+  this->GetMinimumSpanningTree( )->SetParent( n.Vertex, n.Parent );
+}
+
+#endif // __fpa__Filters__Dijkstra__hxx__
+// eof - $RCSfile$