Imaging/vtkImageMathematics.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkImageMathematics_h
00027 #define __vtkImageMathematics_h
00028
00029
00030
00031 #define VTK_ADD 0
00032 #define VTK_SUBTRACT 1
00033 #define VTK_MULTIPLY 2
00034 #define VTK_DIVIDE 3
00035 #define VTK_INVERT 4
00036 #define VTK_SIN 5
00037 #define VTK_COS 6
00038 #define VTK_EXP 7
00039 #define VTK_LOG 8
00040 #define VTK_ABS 9
00041 #define VTK_SQR 10
00042 #define VTK_SQRT 11
00043 #define VTK_MIN 12
00044 #define VTK_MAX 13
00045 #define VTK_ATAN 14
00046 #define VTK_ATAN2 15
00047 #define VTK_MULTIPLYBYK 16
00048 #define VTK_ADDC 17
00049 #define VTK_CONJUGATE 18
00050 #define VTK_COMPLEX_MULTIPLY 19
00051 #define VTK_REPLACECBYK 20
00052
00053 #include "vtkImageTwoInputFilter.h"
00054
00055 class VTK_IMAGING_EXPORT vtkImageMathematics : public vtkImageTwoInputFilter
00056 {
00057 public:
00058 static vtkImageMathematics *New();
00059 vtkTypeRevisionMacro(vtkImageMathematics,vtkImageTwoInputFilter);
00060 void PrintSelf(ostream& os, vtkIndent indent);
00061
00063
00064 vtkSetMacro(Operation,int);
00065 vtkGetMacro(Operation,int);
00066 void SetOperationToAdd() {this->SetOperation(VTK_ADD);};
00067 void SetOperationToSubtract() {this->SetOperation(VTK_SUBTRACT);};
00068 void SetOperationToMultiply() {this->SetOperation(VTK_MULTIPLY);};
00069 void SetOperationToDivide() {this->SetOperation(VTK_DIVIDE);};
00070 void SetOperationToConjugate() {this->SetOperation(VTK_CONJUGATE);};
00071 void SetOperationToComplexMultiply()
00072 {this->SetOperation(VTK_COMPLEX_MULTIPLY);};
00074
00075 void SetOperationToInvert() {this->SetOperation(VTK_INVERT);};
00076 void SetOperationToSin() {this->SetOperation(VTK_SIN);};
00077 void SetOperationToCos() {this->SetOperation(VTK_COS);};
00078 void SetOperationToExp() {this->SetOperation(VTK_EXP);};
00079 void SetOperationToLog() {this->SetOperation(VTK_LOG);};
00080 void SetOperationToAbsoluteValue() {this->SetOperation(VTK_ABS);};
00081 void SetOperationToSquare() {this->SetOperation(VTK_SQR);};
00082 void SetOperationToSquareRoot() {this->SetOperation(VTK_SQRT);};
00083 void SetOperationToMin() {this->SetOperation(VTK_MIN);};
00084 void SetOperationToMax() {this->SetOperation(VTK_MAX);};
00085
00086 void SetOperationToATAN() {this->SetOperation(VTK_ATAN);};
00087 void SetOperationToATAN2() {this->SetOperation(VTK_ATAN2);};
00088 void SetOperationToMultiplyByK() {this->SetOperation(VTK_MULTIPLYBYK);};
00089 void SetOperationToAddConstant() {this->SetOperation(VTK_ADDC);};
00090 void SetOperationToReplaceCByK() {this->SetOperation(VTK_REPLACECBYK);};
00091 vtkSetMacro(ConstantK,double);
00092 vtkGetMacro(ConstantK,double);
00093 vtkSetMacro(ConstantC,double);
00094 vtkGetMacro(ConstantC,double);
00095
00096
00097 vtkSetMacro(DivideByZeroToC,int);
00098 vtkGetMacro(DivideByZeroToC,int);
00099 vtkBooleanMacro(DivideByZeroToC,int);
00100
00101 protected:
00102 vtkImageMathematics();
00103 ~vtkImageMathematics() {};
00104
00105 int Operation;
00106 double ConstantK;
00107 double ConstantC;
00108 int DivideByZeroToC;
00109
00110 void ExecuteInformation(vtkImageData **inDatas, vtkImageData *outData);
00111 void ExecuteInformation(){this->vtkImageTwoInputFilter::ExecuteInformation();};
00112 void ThreadedExecute(vtkImageData **inDatas, vtkImageData *outData,
00113 int extent[6], int id);
00114 private:
00115 vtkImageMathematics(const vtkImageMathematics&);
00116 void operator=(const vtkImageMathematics&);
00117 };
00118
00119 #endif
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132