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