00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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&);
00148
void operator=(
const vtkArrayCalculator&);
00149 };
00150
00151
#endif