#ifndef __FPA__IMAGE__DIJKSTRA__HXX__ #define __FPA__IMAGE__DIJKSTRA__HXX__ #include // ------------------------------------------------------------------------- template< class I, class O > fpa::Image::Dijkstra< I, O >:: Dijkstra( ) : Superclass( ) { this->m_CostFunction = TCostFunction::New( ); } // ------------------------------------------------------------------------- template< class I, class O > fpa::Image::Dijkstra< I, O >:: ~Dijkstra( ) { } // ------------------------------------------------------------------------- template< class I, class O > typename fpa::Image::Dijkstra< I, O >:: TResult fpa::Image::Dijkstra< I, O >:: _Cost( const TVertex& v, const TVertex& p ) const { if( this->_HasEdge( v, p ) ) { TResult c = this->m_CostFunction->Evaluate( v, p ); if( this->m_ConversionFunction.IsNotNull( ) ) c = this->m_ConversionFunction->Evaluate( c ); return( c ); } else return( std::numeric_limits< TResult >::max( ) ); } // ------------------------------------------------------------------------- template< class I, class O > void fpa::Image::Dijkstra< I, O >:: _BeforeGenerateData( ) { this->Superclass::_BeforeGenerateData( ); this->m_CostFunction->SetInputImage( this->GetInput( ) ); } // ------------------------------------------------------------------------- template< class I, class O > void fpa::Image::Dijkstra< I, O >:: _InitResults( ) { this->Superclass::_InitResults( ); this->GetOutput( )->FillBuffer( TResult( 0 ) ); } #endif // __FPA__IMAGE__DIJKSTRA__HXX__ // eof - $RCSfile$