1 #ifndef __FPA__IMAGE__DIJKSTRA__HXX__
2 #define __FPA__IMAGE__DIJKSTRA__HXX__
6 // -------------------------------------------------------------------------
7 template< class I, class O >
8 fpa::Image::Dijkstra< I, O >::
12 this->m_CostFunction = TCostFunction::New( );
15 // -------------------------------------------------------------------------
16 template< class I, class O >
17 fpa::Image::Dijkstra< I, O >::
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
28 if( this->_HasEdge( v, p ) )
30 TResult c = this->m_CostFunction->Evaluate( v, p );
31 if( this->m_ConversionFunction.IsNotNull( ) )
32 c = this->m_ConversionFunction->Evaluate( c );
36 return( std::numeric_limits< TResult >::max( ) );
39 // -------------------------------------------------------------------------
40 template< class I, class O >
41 void fpa::Image::Dijkstra< I, O >::
42 _BeforeGenerateData( )
44 this->Superclass::_BeforeGenerateData( );
45 this->m_CostFunction->SetInputImage( this->GetInput( ) );
48 // -------------------------------------------------------------------------
49 template< class I, class O >
50 void fpa::Image::Dijkstra< I, O >::
53 this->Superclass::_InitResults( );
54 this->GetOutput( )->FillBuffer( TResult( 0 ) );
57 #endif // __FPA__IMAGE__DIJKSTRA__HXX__