]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/Dijkstra.hxx
Architecture revisited.
[FrontAlgorithms.git] / lib / fpa / Image / Dijkstra.hxx
1 #ifndef __FPA__IMAGE__DIJKSTRA__HXX__
2 #define __FPA__IMAGE__DIJKSTRA__HXX__
3
4 // -------------------------------------------------------------------------
5 template< class _TInputImage, class _TOutputImage >
6 fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
7 Dijkstra( )
8   : Superclass( ),
9     m_UseImageSpacing( false )
10 {
11 }
12  
13 // -------------------------------------------------------------------------
14 template< class _TInputImage, class _TOutputImage >
15 fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
16 ~Dijkstra( )
17 {
18 }
19
20 // -------------------------------------------------------------------------
21 template< class _TInputImage, class _TOutputImage >
22 typename fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
23 TScalar fpa::Image::Dijkstra< _TInputImage, _TOutputImage >::
24 _Cost( const TVertex& a, const TVertex& b ) const
25 {
26   auto input = this->GetInput( );
27   TScalar coeff = TScalar( 1 );
28   if( this->m_UseImageSpacing )
29   {
30     typename _TInputImage::PointType pa, pb;
31     input->TransformIndexToPhysicalPoint( a, pa );
32     input->TransformIndexToPhysicalPoint( b, pb );
33     coeff = TScalar( pa.EuclideanDistanceTo( pb ) );
34
35   } // fi
36   TScalar va = TScalar( input->GetPixel( a ) );
37   return( va * coeff );
38 }
39
40 #endif // __FPA__IMAGE__DIJKSTRA__HXX__
41
42 // eof - $RCSfile$