]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/Dijkstra.hxx
Some more tests
[FrontAlgorithms.git] / lib / fpa / Image / Dijkstra.hxx
1 #ifndef __FPA__IMAGE__DIJKSTRA__HXX__
2 #define __FPA__IMAGE__DIJKSTRA__HXX__
3
4 #include <limits>
5
6 // -------------------------------------------------------------------------
7 template< class I, class O >
8 fpa::Image::Dijkstra< I, O >::
9 Dijkstra( )
10   : Superclass( )
11 {
12   this->m_CostFunction = TCostFunction::New( );
13 }
14
15 // -------------------------------------------------------------------------
16 template< class I, class O >
17 fpa::Image::Dijkstra< I, O >::
18 ~Dijkstra( )
19 {
20 }
21
22 // -------------------------------------------------------------------------
23 template< class I, class O >
24 typename fpa::Image::Dijkstra< I, O >::
25 TResult fpa::Image::Dijkstra< I, O >::
26 _Cost( const TVertex& v, const TVertex& p ) const
27 {
28   if( this->_HasEdge( v, p ) )
29   {
30     TResult c = this->m_CostFunction->Evaluate( v, p );
31     if( this->m_ConversionFunction.IsNotNull( ) )
32       c = this->m_ConversionFunction->Evaluate( c );
33     return( c );
34   }
35   else
36     return( std::numeric_limits< TResult >::max( ) );
37 }
38
39 // -------------------------------------------------------------------------
40 template< class I, class O >
41 void fpa::Image::Dijkstra< I, O >::
42 _BeforeGenerateData( )
43 {
44   this->Superclass::_BeforeGenerateData( );
45   this->m_CostFunction->SetInputImage( this->GetInput( ) );
46 }
47
48 // -------------------------------------------------------------------------
49 template< class I, class O >
50 void fpa::Image::Dijkstra< I, O >::
51 _InitResults( )
52 {
53   this->Superclass::_InitResults( );
54   this->GetOutput( )->FillBuffer( TResult( 0 ) );
55 }
56
57 #endif // __FPA__IMAGE__DIJKSTRA__HXX__
58
59 // eof - $RCSfile$