#ifndef __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__ #define __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__ // ------------------------------------------------------------------------- template< class _TGradient, class _TMask > void cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: Prepare( ) const { } // ------------------------------------------------------------------------- template< class _TGradient, class _TMask > typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: Evaluate( const TPoint& p ) const { TIndex i; this->GetInputImage( )->TransformPhysicalPointToIndex( p, i ); return( this->EvaluateAtIndex( i ) ); } // ------------------------------------------------------------------------- template< class _TGradient, class _TMask > typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: EvaluateAtIndex( const TIndex& i ) const { bool eval = true; if( this->m_Mask.IsNotNull( ) ) eval = ( ( unsigned long )( this->m_Mask->GetPixel( i ) ) > 0 ); if( eval ) return( this->_Evaluate( i ) ); else return( TOutput( -1 ) ); } // ------------------------------------------------------------------------- template< class _TGradient, class _TMask > typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: EvaluateAtContinuousIndex( const TContIndex& i ) const { TPoint p; this->GetInputImage( )->TransformContinuousIndexToPhysicalPoint( i, p ); return( this->Evaluate( p ) ); } // ------------------------------------------------------------------------- template< class _TGradient, class _TMask > cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: GradientImageFunctionBase( ) : Superclass( ) { } // ------------------------------------------------------------------------- template< class _TGradient, class _TMask > cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >:: ~GradientImageFunctionBase( ) { } #endif // __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__ // eof - $RCSfile$