Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Graphics/vtkArrayCalculator.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkArrayCalculator.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 =========================================================================*/ 00039 #ifndef __vtkArrayCalculator_h 00040 #define __vtkArrayCalculator_h 00041 00042 #include "vtkDataSetToDataSetFilter.h" 00043 00044 class vtkFunctionParser; 00045 00046 #define VTK_ATTRIBUTE_MODE_DEFAULT 0 00047 #define VTK_ATTRIBUTE_MODE_USE_POINT_DATA 1 00048 #define VTK_ATTRIBUTE_MODE_USE_CELL_DATA 2 00049 00050 class VTK_GRAPHICS_EXPORT vtkArrayCalculator : public vtkDataSetToDataSetFilter 00051 { 00052 public: 00053 vtkTypeRevisionMacro(vtkArrayCalculator,vtkDataSetToDataSetFilter); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00056 static vtkArrayCalculator *New(); 00057 00059 00060 void SetFunction(const char* function); 00061 vtkGetStringMacro(Function); 00063 00065 00070 void AddScalarArrayName(const char* arrayName, int component = 0); 00071 void AddVectorArrayName(const char* arrayName, int component0 = 0, 00072 int component1 = 1, int component2 = 2); 00074 00076 00078 void AddScalarVariable(const char* variableName, const char* arrayName, 00079 int component = 0); 00080 void AddVectorVariable(const char* variableName, const char* arrayName, 00081 int component0 = 0, int component1 = 1, 00082 int component2 = 2); 00084 00086 00090 void SetResultArrayName(const char* name); 00091 vtkGetStringMacro(ResultArrayName); 00093 00095 00100 vtkSetMacro(AttributeMode,int); 00101 vtkGetMacro(AttributeMode,int); 00102 void SetAttributeModeToDefault() 00103 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_DEFAULT);}; 00104 void SetAttributeModeToUsePointData() 00105 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_POINT_DATA);}; 00106 void SetAttributeModeToUseCellData() 00107 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_CELL_DATA);}; 00108 const char *GetAttributeModeAsString(); 00110 00112 void RemoveAllVariables(); 00113 00115 00116 char** GetScalarArrayNames() { return this->ScalarArrayNames; } 00117 char* GetScalarArrayName(int i); 00118 char** GetVectorArrayNames() { return this->VectorArrayNames; } 00119 char* GetVectorArrayName(int i); 00120 char** GetScalarVariableNames() { return this->ScalarVariableNames; } 00121 char* GetScalarVariableName(int i); 00122 char** GetVectorVariableNames() { return this->VectorVariableNames; } 00123 char* GetVectorVariableName(int i); 00124 int* GetSelectedScalarComponents() { return this->SelectedScalarComponents; } 00125 int GetSelectedScalarComponent(int i); 00126 int** GetSelectedVectorComponents() { return this->SelectedVectorComponents;} 00127 int* GetSelectedVectorComponents(int i); 00128 vtkGetMacro(NumberOfScalarArrays, int); 00129 vtkGetMacro(NumberOfVectorArrays, int); 00131 00132 protected: 00133 vtkArrayCalculator(); 00134 ~vtkArrayCalculator(); 00135 00136 void Execute(); 00137 00138 char* Function; 00139 char* ResultArrayName; 00140 char** ScalarArrayNames; 00141 char** VectorArrayNames; 00142 char** ScalarVariableNames; 00143 char** VectorVariableNames; 00144 int NumberOfScalarArrays; 00145 int NumberOfVectorArrays; 00146 int AttributeMode; 00147 int* SelectedScalarComponents; 00148 int** SelectedVectorComponents; 00149 vtkFunctionParser* FunctionParser; 00150 private: 00151 vtkArrayCalculator(const vtkArrayCalculator&); // Not implemented. 00152 void operator=(const vtkArrayCalculator&); // Not implemented. 00153 }; 00154 00155 #endif