VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkArrayCalculator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkArrayCalculator.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
66 #ifndef __vtkArrayCalculator_h
67 #define __vtkArrayCalculator_h
68 
69 #include "vtkFiltersCoreModule.h" // For export macro
70 #include "vtkDataSetAlgorithm.h"
71 
72 class vtkFunctionParser;
73 
74 #define VTK_ATTRIBUTE_MODE_DEFAULT 0
75 #define VTK_ATTRIBUTE_MODE_USE_POINT_DATA 1
76 #define VTK_ATTRIBUTE_MODE_USE_CELL_DATA 2
77 #define VTK_ATTRIBUTE_MODE_USE_VERTEX_DATA 3
78 #define VTK_ATTRIBUTE_MODE_USE_EDGE_DATA 4
79 
80 class VTKFILTERSCORE_EXPORT vtkArrayCalculator : public vtkDataSetAlgorithm
81 {
82 public:
83  vtkTypeMacro(vtkArrayCalculator,vtkDataSetAlgorithm);
84  void PrintSelf(ostream& os, vtkIndent indent);
85 
86  static vtkArrayCalculator *New();
87 
89 
90  virtual void SetFunction(const char* function);
91  vtkGetStringMacro(Function);
93 
95 
100  void AddScalarArrayName(const char* arrayName, int component = 0);
101  void AddVectorArrayName(const char* arrayName, int component0 = 0,
102  int component1 = 1, int component2 = 2);
104 
106 
108  void AddScalarVariable(const char* variableName, const char* arrayName,
109  int component = 0);
110  void AddVectorVariable(const char* variableName, const char* arrayName,
111  int component0 = 0, int component1 = 1,
112  int component2 = 2);
114 
116 
118  void AddCoordinateScalarVariable(const char* variableName,
119  int component = 0);
120  void AddCoordinateVectorVariable(const char* variableName,
121  int component0 = 0, int component1 = 1,
122  int component2 = 2);
124 
126 
130  void SetResultArrayName(const char* name);
131  vtkGetStringMacro(ResultArrayName);
133 
135 
137  vtkGetMacro(ResultArrayType,int);
138  vtkSetMacro(ResultArrayType,int);
140 
142 
146  vtkGetMacro(CoordinateResults, int);
147  vtkSetMacro(CoordinateResults, int);
148  vtkBooleanMacro(CoordinateResults, int);
150 
152 
159  vtkSetMacro(AttributeMode,int);
160  vtkGetMacro(AttributeMode,int);
162  {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_DEFAULT);};
164  {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_POINT_DATA);};
166  {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_CELL_DATA);};
168  {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_VERTEX_DATA);};
170  {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_EDGE_DATA);};
171  const char *GetAttributeModeAsString();
173 
175  void RemoveAllVariables();
176 
179  virtual void RemoveScalarVariables();
180 
183  virtual void RemoveVectorVariables();
184 
186  virtual void RemoveCoordinateScalarVariables();
187 
189  virtual void RemoveCoordinateVectorVariables();
190 
192 
193  char** GetScalarArrayNames() { return this->ScalarArrayNames; }
194  char* GetScalarArrayName(int i);
195  char** GetVectorArrayNames() { return this->VectorArrayNames; }
196  char* GetVectorArrayName(int i);
197  char** GetScalarVariableNames() { return this->ScalarVariableNames; }
198  char* GetScalarVariableName(int i);
199  char** GetVectorVariableNames() { return this->VectorVariableNames; }
200  char* GetVectorVariableName(int i);
201  int* GetSelectedScalarComponents() { return this->SelectedScalarComponents; }
202  int GetSelectedScalarComponent(int i);
203  int** GetSelectedVectorComponents() { return this->SelectedVectorComponents;}
204  int* GetSelectedVectorComponents(int i);
205  vtkGetMacro(NumberOfScalarArrays, int);
206  vtkGetMacro(NumberOfVectorArrays, int);
208 
210 
214  vtkSetMacro(ReplaceInvalidValues,int);
215  vtkGetMacro(ReplaceInvalidValues,int);
216  vtkBooleanMacro(ReplaceInvalidValues,int);
217  vtkSetMacro(ReplacementValue,double);
218  vtkGetMacro(ReplacementValue,double);
220 
221 protected:
224 
225  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
226 
227  char * Function;
238  vtkFunctionParser* FunctionParser;
239 
242 
250 
252 private:
253  vtkArrayCalculator(const vtkArrayCalculator&); // Not implemented.
254  void operator=(const vtkArrayCalculator&); // Not implemented.
255 };
256 
257 #endif
#define VTK_ATTRIBUTE_MODE_USE_VERTEX_DATA
int ** SelectedCoordinateVectorComponents
perform mathematical operations on data in field data arrays
#define VTK_ATTRIBUTE_MODE_DEFAULT
vtkFunctionParser * FunctionParser
#define VTK_ATTRIBUTE_MODE_USE_EDGE_DATA
char ** CoordinateVectorVariableNames
void SetAttributeModeToUseVertexData()
char ** GetVectorVariableNames()
#define VTK_ATTRIBUTE_MODE_USE_CELL_DATA
char ** GetScalarVariableNames()
#define VTK_ATTRIBUTE_MODE_USE_POINT_DATA
int * SelectedCoordinateScalarComponents
int ** GetSelectedVectorComponents()
char ** CoordinateScalarVariableNames