#ifndef __FPA__IMAGE__FUNCTORS__IMAGEFUNCTION__H__ #define __FPA__IMAGE__FUNCTORS__IMAGEFUNCTION__H__ #include namespace fpa { namespace Image { namespace Functors { /** */ template< class I, class O > class ImageFunction : public itk::FunctionBase< typename I::IndexType, O > { public: /// Type-related and pointers typedef ImageFunction Self; typedef itk::FunctionBase< typename I::IndexType, O > Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef I TInputImage; typedef O TOutputValue; typedef typename I::IndexType TIndex; public: itkTypeMacro( ImageFunction, itkFunctionBase ); itkGetConstObjectMacro( InputImage, I ); itkSetConstObjectMacro( InputImage, I ); public: virtual O Evaluate( const TIndex& idx ) const = 0; protected: ImageFunction( ) : Superclass( ) { } virtual ~ImageFunction( ) { } private: // Purposely not implemented ImageFunction( const Self& ); void operator=( const Self& ); protected: typename I::ConstPointer m_InputImage; }; } // ecapseman } // ecapseman } // ecapseman #endif // __FPA__IMAGE__FUNCTORS__IMAGEFUNCTION__H__ // eof - $RCSfile$