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 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 =========================================================================*/ 00035 #ifndef __vtkArrayCalculator_h 00036 #define __vtkArrayCalculator_h 00037 00038 #include "vtkDataSetToDataSetFilter.h" 00039 00040 class vtkFunctionParser; 00041 00042 #define VTK_ATTRIBUTE_MODE_DEFAULT 0 00043 #define VTK_ATTRIBUTE_MODE_USE_POINT_DATA 1 00044 #define VTK_ATTRIBUTE_MODE_USE_CELL_DATA 2 00045 00046 class VTK_GRAPHICS_EXPORT vtkArrayCalculator : public vtkDataSetToDataSetFilter 00047 { 00048 public: 00049 vtkTypeRevisionMacro(vtkArrayCalculator,vtkDataSetToDataSetFilter); 00050 void PrintSelf(ostream& os, vtkIndent indent); 00051 00052 static vtkArrayCalculator *New(); 00053 00055 00056 void SetFunction(const char* function); 00057 vtkGetStringMacro(Function); 00059 00061 00066 void AddScalarArrayName(const char* arrayName, int component = 0); 00067 void AddVectorArrayName(const char* arrayName, int component0 = 0, 00068 int component1 = 1, int component2 = 2); 00070 00072 00074 void AddScalarVariable(const char* variableName, const char* arrayName, 00075 int component = 0); 00076 void AddVectorVariable(const char* variableName, const char* arrayName, 00077 int component0 = 0, int component1 = 1, 00078 int component2 = 2); 00080 00082 00086 void SetResultArrayName(const char* name); 00087 vtkGetStringMacro(ResultArrayName); 00089 00091 00096 vtkSetMacro(AttributeMode,int); 00097 vtkGetMacro(AttributeMode,int); 00098 void SetAttributeModeToDefault() 00099 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_DEFAULT);}; 00100 void SetAttributeModeToUsePointData() 00101 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_POINT_DATA);}; 00102 void SetAttributeModeToUseCellData() 00103 {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_CELL_DATA);}; 00104 const char *GetAttributeModeAsString(); 00106 00108 void RemoveAllVariables(); 00109 00111 00112 char** GetScalarArrayNames() { return this->ScalarArrayNames; } 00113 char* GetScalarArrayName(int i); 00114 char** GetVectorArrayNames() { return this->VectorArrayNames; } 00115 char* GetVectorArrayName(int i); 00116 char** GetScalarVariableNames() { return this->ScalarVariableNames; } 00117 char* GetScalarVariableName(int i); 00118 char** GetVectorVariableNames() { return this->VectorVariableNames; } 00119 char* GetVectorVariableName(int i); 00120 int* GetSelectedScalarComponents() { return this->SelectedScalarComponents; } 00121 int GetSelectedScalarComponent(int i); 00122 int** GetSelectedVectorComponents() { return this->SelectedVectorComponents;} 00123 int* GetSelectedVectorComponents(int i); 00124 vtkGetMacro(NumberOfScalarArrays, int); 00125 vtkGetMacro(NumberOfVectorArrays, int); 00127 00128 protected: 00129 vtkArrayCalculator(); 00130 ~vtkArrayCalculator(); 00131 00132 void Execute(); 00133 00134 char* Function; 00135 char* ResultArrayName; 00136 char** ScalarArrayNames; 00137 char** VectorArrayNames; 00138 char** ScalarVariableNames; 00139 char** VectorVariableNames; 00140 int NumberOfScalarArrays; 00141 int NumberOfVectorArrays; 00142 int AttributeMode; 00143 int* SelectedScalarComponents; 00144 int** SelectedVectorComponents; 00145 vtkFunctionParser* FunctionParser; 00146 private: 00147 vtkArrayCalculator(const vtkArrayCalculator&); // Not implemented. 00148 void operator=(const vtkArrayCalculator&); // Not implemented. 00149 }; 00150 00151 #endif