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

dox/Filtering/vtkInterpolatedVelocityField.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkInterpolatedVelocityField.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 =========================================================================*/
00040 #ifndef __vtkInterpolatedVelocityField_h
00041 #define __vtkInterpolatedVelocityField_h
00042 
00043 #include "vtkFunctionSet.h"
00044 
00045 class vtkDataSet;
00046 class vtkDataArray;
00047 class vtkPointData;
00048 class vtkGenericCell;
00049 
00050 class vtkInterpolatedVelocityFieldDataSetsType;
00051 
00052 class VTK_FILTERING_EXPORT vtkInterpolatedVelocityField : public vtkFunctionSet
00053 {
00054 public:
00055   vtkTypeRevisionMacro(vtkInterpolatedVelocityField,vtkFunctionSet);
00056   virtual void PrintSelf(ostream& os, vtkIndent indent);
00057 
00060   static vtkInterpolatedVelocityField *New();
00061 
00064   virtual int FunctionValues(double* x, double* f);
00065 
00070   virtual void AddDataSet(vtkDataSet* dataset);
00071 
00073 
00074   vtkGetMacro(LastCellId, vtkIdType);
00075   void SetLastCellId(vtkIdType c)
00076     { this->LastCellId = c; }
00077   void SetLastCellId(vtkIdType c, int dataindex);
00079 
00082   void ClearLastCellId() { this->LastCellId = -1; }
00083 
00085 
00088   int GetLastWeights(double* w);
00089   int GetLastLocalCoordinates(double pcoords[3]);
00091 
00093 
00094   vtkGetMacro(Caching, int);
00095   vtkSetMacro(Caching, int);
00096   vtkBooleanMacro(Caching, int);
00098 
00100 
00101   vtkGetMacro(CacheHit, int);
00102   vtkGetMacro(CacheMiss, int);
00104 
00106 
00109   vtkGetStringMacro(VectorsSelection);
00110   void SelectVectors(const char *fieldName) 
00111     {this->SetVectorsSelection(fieldName);}
00113   
00115 
00122   vtkGetObjectMacro(LastDataSet, vtkDataSet);
00123   vtkGetMacro(LastDataSetIndex, int);
00125 
00128   virtual void CopyParameters(vtkInterpolatedVelocityField* from);
00129 
00130 protected:
00131   vtkInterpolatedVelocityField();
00132   ~vtkInterpolatedVelocityField();
00133 
00134   vtkGenericCell* GenCell; // last cell
00135   vtkGenericCell* Cell;
00136   double* Weights; // last weights
00137   int WeightsSize;
00138   double LastPCoords[3]; // last local coordinates
00139   vtkIdType LastCellId;
00140   int CacheHit;
00141   int CacheMiss;
00142   int Caching;
00143   int LastDataSetIndex;
00144 
00145   vtkDataSet* LastDataSet;
00146 
00147   vtkSetStringMacro(VectorsSelection);
00148   char *VectorsSelection;
00149 
00150   vtkInterpolatedVelocityFieldDataSetsType* DataSets;
00151 
00152   int FunctionValues(vtkDataSet* ds, double* x, double* f);
00153 //BTX
00154   friend class vtkTemporalInterpolatedVelocityField;
00156 
00160   void FastCompute(vtkDataArray* vectors, double f[3]);
00161   bool InterpolatePoint(vtkPointData *outPD, 
00162     vtkIdType outIndex);
00163   vtkGenericCell *GetLastCell();
00165 //ETX
00166 
00167   static const double TOLERANCE_SCALE;
00168 
00169 private:
00170   vtkInterpolatedVelocityField(const vtkInterpolatedVelocityField&);  // Not implemented.
00171   void operator=(const vtkInterpolatedVelocityField&);  // Not implemented.
00172 };
00173 
00174 #endif
00175 
00176 
00177 
00178 
00179 
00180 
00181 
00182 

Generated by  doxygen 1.7.1