00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026
#ifndef __vtkImageLogic_h
00027
#define __vtkImageLogic_h
00028
00029
00030
00031 #define VTK_AND 0
00032 #define VTK_OR 1
00033 #define VTK_XOR 2
00034 #define VTK_NAND 3
00035 #define VTK_NOR 4
00036 #define VTK_NOT 5
00037 #define VTK_NOP 6
00038
00039
00040
00041
#include "vtkImageTwoInputFilter.h"
00042
00043 class VTK_IMAGING_EXPORT vtkImageLogic :
public vtkImageTwoInputFilter
00044 {
00045
public:
00046
static vtkImageLogic *
New();
00047 vtkTypeRevisionMacro(vtkImageLogic,
vtkImageTwoInputFilter);
00048
void PrintSelf(ostream& os,
vtkIndent indent);
00049
00051
00052 vtkSetMacro(Operation,
int);
00053 vtkGetMacro(Operation,
int);
00054 void SetOperationToAnd() {this->SetOperation(
VTK_AND);};
00055 void SetOperationToOr() {this->SetOperation(
VTK_OR);};
00056 void SetOperationToXor() {this->SetOperation(
VTK_XOR);};
00057 void SetOperationToNand() {this->SetOperation(
VTK_NAND);};
00058 void SetOperationToNor() {this->SetOperation(
VTK_NOR);};
00059 void SetOperationToNot() {this->SetOperation(
VTK_NOT);};
00061
00063
00064 vtkSetMacro(OutputTrueValue,
double);
00065 vtkGetMacro(OutputTrueValue,
double);
00067
00068
protected:
00069 vtkImageLogic();
00070 ~vtkImageLogic() {};
00071
00072 int Operation;
00073 double OutputTrueValue;
00074
00075
void ThreadedExecute(
vtkImageData **inDatas,
vtkImageData *outData,
00076
int extent[6],
int id);
00077
private:
00078 vtkImageLogic(
const vtkImageLogic&);
00079
void operator=(
const vtkImageLogic&);
00080 };
00081
00082
#endif
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095