00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageLogic.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00041 #ifndef __vtkImageLogic_h 00042 #define __vtkImageLogic_h 00043 00044 00045 // Operation options. 00046 #define VTK_AND 0 00047 #define VTK_OR 1 00048 #define VTK_XOR 2 00049 #define VTK_NAND 3 00050 #define VTK_NOR 4 00051 #define VTK_NOT 5 00052 #define VTK_NOP 6 00053 00054 00055 00056 #include "vtkImageTwoInputFilter.h" 00057 00058 class VTK_IMAGING_EXPORT vtkImageLogic : public vtkImageTwoInputFilter 00059 { 00060 public: 00061 static vtkImageLogic *New(); 00062 vtkTypeRevisionMacro(vtkImageLogic,vtkImageTwoInputFilter); 00063 void PrintSelf(ostream& os, vtkIndent indent); 00064 00066 00067 vtkSetMacro(Operation,int); 00068 vtkGetMacro(Operation,int); 00069 void SetOperationToAnd() {this->SetOperation(VTK_AND);}; 00070 void SetOperationToOr() {this->SetOperation(VTK_OR);}; 00071 void SetOperationToXor() {this->SetOperation(VTK_XOR);}; 00072 void SetOperationToNand() {this->SetOperation(VTK_NAND);}; 00073 void SetOperationToNor() {this->SetOperation(VTK_NOR);}; 00074 void SetOperationToNot() {this->SetOperation(VTK_NOT);}; 00076 00078 00079 vtkSetMacro(OutputTrueValue, float); 00080 vtkGetMacro(OutputTrueValue, float); 00082 00083 protected: 00084 vtkImageLogic(); 00085 ~vtkImageLogic() {}; 00086 00087 int Operation; 00088 float OutputTrueValue; 00089 00090 void ThreadedExecute(vtkImageData **inDatas, vtkImageData *outData, 00091 int extent[6], int id); 00092 private: 00093 vtkImageLogic(const vtkImageLogic&); // Not implemented. 00094 void operator=(const vtkImageLogic&); // Not implemented. 00095 }; 00096 00097 #endif 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110