]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Algorithms/GradientImageFunctionBase.hxx
yet another refactoring
[cpPlugins.git] / lib / cpExtensions / Algorithms / GradientImageFunctionBase.hxx
diff --git a/lib/cpExtensions/Algorithms/GradientImageFunctionBase.hxx b/lib/cpExtensions/Algorithms/GradientImageFunctionBase.hxx
new file mode 100644 (file)
index 0000000..a858650
--- /dev/null
@@ -0,0 +1,72 @@
+#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$