]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/Dijkstra.hxx
...
[FrontAlgorithms.git] / lib / fpa / Image / Dijkstra.hxx
index b81a533ba25d5dd139062e67114692c48bb34747..1f21dc4335cddbe310c8fe5ef0e9d6ee65c1f9f2 100644 (file)
@@ -1,15 +1,19 @@
-#ifndef __FPA__IMAGE__DIJKSTRA__HXX__
-#define __FPA__IMAGE__DIJKSTRA__HXX__
+#ifndef __fpa__Image__Dijkstra__hxx__
+#define __fpa__Image__Dijkstra__hxx__
+
+#include <fpa/Image/Functors/VertexCost.h>
 
 // -------------------------------------------------------------------------
 template< class _TInputImage, class _TOutputImage >
 fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
 Dijkstra( )
-  : Superclass( ),
-    m_UseImageSpacing( false )
+  : Superclass( )
 {
+  typedef fpa::Image::Functors::VertexCost< _TInputImage, TOutput > _TCost;
+  typename _TCost::Pointer cost = _TCost::New( );
+  this->SetVertexFunction( cost );
 }
+
 // -------------------------------------------------------------------------
 template< class _TInputImage, class _TOutputImage >
 fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
@@ -17,26 +21,6 @@ fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
 {
 }
 
-// -------------------------------------------------------------------------
-template< class _TInputImage, class _TOutputImage >
-typename fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
-TScalar fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
-_Cost( const TVertex& a, const TVertex& b ) const
-{
-  auto input = this->GetInput( );
-  TScalar coeff = TScalar( 1 );
-  if( this->m_UseImageSpacing )
-  {
-    typename _TInputImage::PointType pa, pb;
-    input->TransformIndexToPhysicalPoint( a, pa );
-    input->TransformIndexToPhysicalPoint( b, pb );
-    coeff = TScalar( pa.EuclideanDistanceTo( pb ) );
-
-  } // fi
-  TScalar va = TScalar( input->GetPixel( a ) );
-  return( va * coeff );
-}
-
-#endif // __FPA__IMAGE__DIJKSTRA__HXX__
+#endif // __fpa__Image__Dijkstra__hxx__
 
 // eof - $RCSfile$