VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageLogic.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00026 #ifndef __vtkImageLogic_h 00027 #define __vtkImageLogic_h 00028 00029 00030 // Operation options. 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 "vtkThreadedImageAlgorithm.h" 00042 00043 class VTK_IMAGING_EXPORT vtkImageLogic : public vtkThreadedImageAlgorithm 00044 { 00045 public: 00046 static vtkImageLogic *New(); 00047 vtkTypeMacro(vtkImageLogic,vtkThreadedImageAlgorithm); 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 00069 virtual void SetInput1(vtkDataObject *input) { this->SetInput(0,input);}; 00070 00072 virtual void SetInput2(vtkDataObject *input) { this->SetInput(1,input);}; 00073 00074 protected: 00075 vtkImageLogic(); 00076 ~vtkImageLogic() {}; 00077 00078 int Operation; 00079 double OutputTrueValue; 00080 00081 void ThreadedRequestData (vtkInformation* request, 00082 vtkInformationVector** inputVector, 00083 vtkInformationVector* outputVector, 00084 vtkImageData ***inData, vtkImageData **outData, 00085 int ext[6], int id); 00086 virtual int FillInputPortInformation(int port, vtkInformation* info); 00087 00088 private: 00089 vtkImageLogic(const vtkImageLogic&); // Not implemented. 00090 void operator=(const vtkImageLogic&); // Not implemented. 00091 }; 00092 00093 #endif 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106