/vol/vipdata/irtk/image++/include/irtkImageFunction.h

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkImageFunction.h 8 2009-03-02 16:12:58Z dr $
00005   Copyright : Imperial College, Department of Computing
00006               Visual Information Processing (VIP), 2008 onwards
00007   Date      : $Date: 2009-03-02 16:12:58 +0000 (Mon, 02 Mar 2009) $
00008   Version   : $Revision: 8 $
00009   Changes   : $Author: dr $
00010 
00011 =========================================================================*/
00012 
00013 #ifndef _IRTKIMAGEFUNCTION_H
00014 
00015 #define _IRTKIMAGEFUNCTION_H
00016 
00025 class irtkImageFunction : public irtkObject
00026 {
00027 
00028 private:
00029 
00031   Bool _DebugFlag;
00032 
00033 protected:
00034 
00036   irtkImage *_input;
00037 
00039   double _DefaultValue;
00040 
00041 public:
00042 
00044   irtkImageFunction();
00045 
00047   virtual ~irtkImageFunction();
00048 
00050   virtual void SetInput (irtkImage *);
00051 
00054   virtual void Initialize();
00055 
00057   virtual double Evaluate(double, double, double, double = 0) = 0;
00058 
00060   virtual const char *NameOfClass() = 0;
00061 
00063   SetMacro(DebugFlag, Bool);
00064 
00066   GetMacro(DebugFlag, Bool);
00067 
00069   virtual void Debug(const char *);
00070 };
00071 
00072 #include <irtkInterpolateImageFunction.h>
00073 
00074 #endif