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   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
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&);  // Not implemented.
00152   void operator=(const vtkArrayCalculator&);  // Not implemented.
00153 };
00154 
00155 #endif