/vol/vipdata/irtk/packages/transformation/include/irtkImageTransformation2.h

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkImageTransformation2.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 _IRTKIMAGETRANSFORMATION2_H
00014 
00015 #define _IRTKIMAGETRANSFORMATION2_H
00016 
00017 #include <irtkImage.h>
00018 
00019 #include <irtkImageFunction.h>
00020 
00021 #include <irtkTransformation.h>
00022 
00038 class irtkImageTransformation2
00039 {
00040 
00041 protected:
00042 
00044   irtkImage *_input;
00045 
00047   irtkImage *_output;
00048 
00050   irtkTransformation *_transformation;
00051 
00053   irtkTransformation *_transformation2;
00054 
00056   irtkImageFunction *_interpolator;
00057 
00060   double _TargetPaddingValue;
00061 
00064   double _SourcePaddingValue;
00065 
00067   double _ScaleFactor;
00068   
00070   double _Offset;
00071 
00073   int _Invert;
00074 
00075 public:
00076 
00081   irtkImageTransformation2();
00082 
00084   virtual ~irtkImageTransformation2();
00085 
00087   virtual void SetInput (irtkImage *);
00088 
00090   virtual void SetOutput(irtkImage *);
00091 
00093   virtual void SetTransformation(irtkTransformation *, irtkTransformation *);
00094 
00096   virtual double GetTargetPaddingValue(void);
00097 
00099   virtual void PutTargetPaddingValue(double);
00100 
00102   virtual double GetSourcePaddingValue(void);
00103 
00105   virtual void PutSourcePaddingValue(double);
00106 
00108   virtual irtkImageFunction *GetInterpolator(void);
00109 
00111   virtual void PutInterpolator(irtkImageFunction *);
00112 
00114   virtual void InvertOn(void);
00115 
00117   virtual void InvertOff(void);
00118 
00120   virtual void Run();
00121 
00122 };
00123 
00124 inline double irtkImageTransformation2::GetTargetPaddingValue()
00125 {
00126   return _TargetPaddingValue;
00127 }
00128 
00129 inline void irtkImageTransformation2::PutTargetPaddingValue(double PaddingValue)
00130 {
00131   _TargetPaddingValue = PaddingValue;
00132 }
00133 
00134 inline double irtkImageTransformation2::GetSourcePaddingValue()
00135 {
00136   return _SourcePaddingValue;
00137 }
00138 
00139 inline void irtkImageTransformation2::PutSourcePaddingValue(double PaddingValue)
00140 {
00141   _SourcePaddingValue = PaddingValue;
00142 }
00143 
00144 inline irtkImageFunction *irtkImageTransformation2::GetInterpolator()
00145 {
00146   return _interpolator;
00147 }
00148 
00149 inline void irtkImageTransformation2::PutInterpolator(irtkImageFunction *interpolator)
00150 {
00151   _interpolator = interpolator;
00152 }
00153 
00154 inline void irtkImageTransformation2::InvertOn()
00155 {
00156   _Invert = True;
00157 }
00158 
00159 inline void irtkImageTransformation2::InvertOff()
00160 {
00161   _Invert = False;
00162 }
00163 
00164 #endif