#define __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__
// -------------------------------------------------------------------------
-template< class _TGradient >
-void cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
+template< class _TGradient, class _TMask >
+void
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
Prepare( ) const
{
}
// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
+template< class _TGradient, class _TMask >
+typename
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
+TOutput
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
Evaluate( const TPoint& p ) const
{
TIndex i;
}
// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
+template< class _TGradient, class _TMask >
+typename
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
+TOutput
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
EvaluateAtIndex( const TIndex& i ) const
{
- return( this->_Evaluate( i ) );
+ 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 >
-typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
+template< class _TGradient, class _TMask >
+typename
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
+TOutput
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
EvaluateAtContinuousIndex( const TContIndex& i ) const
{
TPoint p;
}
// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
+template< class _TGradient, class _TMask >
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
GradientImageFunctionBase( )
: Superclass( )
{
}
// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
+template< class _TGradient, class _TMask >
+cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient, _TMask >::
~GradientImageFunctionBase( )
{
}