• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

dox/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 =========================================================================*/
00063 #ifndef __vtkArrayCalculator_h
00064 #define __vtkArrayCalculator_h
00065 
00066 #include "vtkDataSetAlgorithm.h"
00067 
00068 class vtkFunctionParser;
00069 
00070 #define VTK_ATTRIBUTE_MODE_DEFAULT 0
00071 #define VTK_ATTRIBUTE_MODE_USE_POINT_DATA 1
00072 #define VTK_ATTRIBUTE_MODE_USE_CELL_DATA 2
00073 #define VTK_ATTRIBUTE_MODE_USE_VERTEX_DATA 3
00074 #define VTK_ATTRIBUTE_MODE_USE_EDGE_DATA 4
00075 
00076 class VTK_GRAPHICS_EXPORT vtkArrayCalculator : public vtkDataSetAlgorithm 
00077 {
00078 public:
00079   vtkTypeRevisionMacro(vtkArrayCalculator,vtkDataSetAlgorithm);
00080   void PrintSelf(ostream& os, vtkIndent indent);
00081 
00082   static vtkArrayCalculator *New();
00083 
00085 
00086   virtual void SetFunction(const char* function);
00087   vtkGetStringMacro(Function);
00089   
00091 
00096   void AddScalarArrayName(const char* arrayName, int component = 0);
00097   void AddVectorArrayName(const char* arrayName, int component0 = 0,
00098                           int component1 = 1, int component2 = 2);
00100   
00102 
00104   void AddScalarVariable(const char* variableName, const char* arrayName,
00105                          int component = 0);
00106   void AddVectorVariable(const char* variableName, const char* arrayName,
00107                          int component0 = 0, int component1 = 1,
00108                          int component2 = 2);
00110 
00112 
00114   void AddCoordinateScalarVariable(const char* variableName,
00115                                    int component = 0);
00116   void AddCoordinateVectorVariable(const char* variableName,
00117                                    int component0 = 0, int component1 = 1,
00118                                    int component2 = 2);
00120   
00122 
00126   void SetResultArrayName(const char* name);
00127   vtkGetStringMacro(ResultArrayName);
00129 
00131 
00133   vtkGetMacro(ResultArrayType,int);
00134   vtkSetMacro(ResultArrayType,int);
00136 
00138 
00142   vtkGetMacro(CoordinateResults, int);
00143   vtkSetMacro(CoordinateResults, int);
00144   vtkBooleanMacro(CoordinateResults, int);
00146   
00148 
00155   vtkSetMacro(AttributeMode,int);
00156   vtkGetMacro(AttributeMode,int);
00157   void SetAttributeModeToDefault() 
00158     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_DEFAULT);};
00159   void SetAttributeModeToUsePointData() 
00160     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_POINT_DATA);};
00161   void SetAttributeModeToUseCellData() 
00162     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_CELL_DATA);};
00163   void SetAttributeModeToUseVertexData() 
00164     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_VERTEX_DATA);};
00165   void SetAttributeModeToUseEdgeData() 
00166     {this->SetAttributeMode(VTK_ATTRIBUTE_MODE_USE_EDGE_DATA);};
00167   const char *GetAttributeModeAsString();
00169 
00171   void RemoveAllVariables();
00172   
00175   virtual void RemoveScalarVariables();
00176   
00179   virtual void RemoveVectorVariables();
00180   
00182   virtual void RemoveCoordinateScalarVariables();
00183   
00185   virtual void RemoveCoordinateVectorVariables();
00186 
00188 
00189   char** GetScalarArrayNames() { return this->ScalarArrayNames; }
00190   char* GetScalarArrayName(int i);
00191   char** GetVectorArrayNames() { return this->VectorArrayNames; }
00192   char* GetVectorArrayName(int i);
00193   char** GetScalarVariableNames() { return this->ScalarVariableNames; }
00194   char* GetScalarVariableName(int i);
00195   char** GetVectorVariableNames() { return this->VectorVariableNames; }
00196   char* GetVectorVariableName(int i);
00197   int* GetSelectedScalarComponents() { return this->SelectedScalarComponents; }
00198   int GetSelectedScalarComponent(int i);
00199   int** GetSelectedVectorComponents() { return this->SelectedVectorComponents;}
00200   int* GetSelectedVectorComponents(int i);
00201   vtkGetMacro(NumberOfScalarArrays, int);
00202   vtkGetMacro(NumberOfVectorArrays, int);
00204   
00206 
00210   vtkSetMacro(ReplaceInvalidValues,int);
00211   vtkGetMacro(ReplaceInvalidValues,int);
00212   vtkBooleanMacro(ReplaceInvalidValues,int);
00213   vtkSetMacro(ReplacementValue,double);
00214   vtkGetMacro(ReplacementValue,double);
00216 
00217 protected:
00218   vtkArrayCalculator();
00219   ~vtkArrayCalculator();
00220 
00221   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00222   
00223   char* Function;
00224   char* ResultArrayName;
00225   char** ScalarArrayNames;
00226   char** VectorArrayNames;
00227   char** ScalarVariableNames;
00228   char** VectorVariableNames;
00229   int NumberOfScalarArrays;
00230   int NumberOfVectorArrays;
00231   int AttributeMode;
00232   int* SelectedScalarComponents;
00233   int** SelectedVectorComponents;
00234   vtkFunctionParser* FunctionParser;
00235 
00236   int ReplaceInvalidValues;
00237   double ReplacementValue;
00238   
00239   int CoordinateResults;
00240   char** CoordinateScalarVariableNames;
00241   char** CoordinateVectorVariableNames;
00242   int* SelectedCoordinateScalarComponents;
00243   int** SelectedCoordinateVectorComponents;
00244   int NumberOfCoordinateScalarArrays;
00245   int NumberOfCoordinateVectorArrays;
00246 
00247   int ResultArrayType;
00248 
00249 private:
00250   vtkArrayCalculator(const vtkArrayCalculator&);  // Not implemented.
00251   void operator=(const vtkArrayCalculator&);  // Not implemented.
00252 };
00253 
00254 #endif

Generated by  doxygen 1.7.1