00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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&);
00152
void operator=(
const vtkArrayCalculator&);
00153 };
00154
00155
#endif