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

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