00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030 #ifndef __vtkImageShiftScale_h
00031 #define __vtkImageShiftScale_h
00032
00033
00034 #include "vtkThreadedImageAlgorithm.h"
00035
00036 class VTK_IMAGING_EXPORT vtkImageShiftScale : public vtkThreadedImageAlgorithm
00037 {
00038 public:
00039 static vtkImageShiftScale *New();
00040 vtkTypeRevisionMacro(vtkImageShiftScale,vtkThreadedImageAlgorithm);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044
00045 vtkSetMacro(Shift,double);
00046 vtkGetMacro(Shift,double);
00048
00050
00051 vtkSetMacro(Scale,double);
00052 vtkGetMacro(Scale,double);
00054
00056
00058 vtkSetMacro(OutputScalarType, int);
00059 vtkGetMacro(OutputScalarType, int);
00060 void SetOutputScalarTypeToDouble()
00061 {this->SetOutputScalarType(VTK_DOUBLE);}
00062 void SetOutputScalarTypeToFloat()
00063 {this->SetOutputScalarType(VTK_FLOAT);}
00064 void SetOutputScalarTypeToLong()
00065 {this->SetOutputScalarType(VTK_LONG);}
00066 void SetOutputScalarTypeToUnsignedLong()
00067 {this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
00068 void SetOutputScalarTypeToInt()
00069 {this->SetOutputScalarType(VTK_INT);}
00070 void SetOutputScalarTypeToUnsignedInt()
00071 {this->SetOutputScalarType(VTK_UNSIGNED_INT);}
00072 void SetOutputScalarTypeToShort()
00073 {this->SetOutputScalarType(VTK_SHORT);}
00074 void SetOutputScalarTypeToUnsignedShort()
00075 {this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
00076 void SetOutputScalarTypeToChar()
00077 {this->SetOutputScalarType(VTK_CHAR);}
00078 void SetOutputScalarTypeToUnsignedChar()
00079 {this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
00081
00083
00086 vtkSetMacro(ClampOverflow, int);
00087 vtkGetMacro(ClampOverflow, int);
00088 vtkBooleanMacro(ClampOverflow, int);
00090
00091 protected:
00092 vtkImageShiftScale();
00093 ~vtkImageShiftScale();
00094
00095 double Shift;
00096 double Scale;
00097 int OutputScalarType;
00098 int ClampOverflow;
00099
00100 virtual int RequestInformation(vtkInformation*,
00101 vtkInformationVector**,
00102 vtkInformationVector*);
00103
00104 virtual void ThreadedRequestData(vtkInformation*,
00105 vtkInformationVector**,
00106 vtkInformationVector*,
00107 vtkImageData*** inData,
00108 vtkImageData** outData,
00109 int outExt[6],
00110 int threadId);
00111 private:
00112 vtkImageShiftScale(const vtkImageShiftScale&);
00113 void operator=(const vtkImageShiftScale&);
00114 };
00115
00116 #endif