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

Common/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 vtkGenericCell;
00047 
00048 class vtkInterpolatedVelocityFieldDataSetsType;
00049 
00050 class VTK_COMMON_EXPORT vtkInterpolatedVelocityField : public vtkFunctionSet
00051 {
00052 public:
00053   vtkTypeRevisionMacro(vtkInterpolatedVelocityField,vtkFunctionSet);
00054   virtual void PrintSelf(ostream& os, vtkIndent indent);
00055 
00058   static vtkInterpolatedVelocityField *New();
00059 
00062   virtual int FunctionValues(double* x, double* f);
00063 
00068   virtual void AddDataSet(vtkDataSet* dataset);
00069 
00071 
00072   vtkGetMacro(LastCellId, vtkIdType);
00073   vtkSetMacro(LastCellId, vtkIdType);
00075 
00078   void ClearLastCellId() { this->LastCellId = -1; }
00079 
00081 
00084   int GetLastWeights(double* w);
00085   int GetLastLocalCoordinates(double pcoords[3]);
00087 
00089 
00090   vtkGetMacro(Caching, int);
00091   vtkSetMacro(Caching, int);
00092   vtkBooleanMacro(Caching, int);
00094 
00096 
00097   vtkGetMacro(CacheHit, int);
00098   vtkGetMacro(CacheMiss, int);
00100 
00102 
00105   vtkGetStringMacro(VectorsSelection);
00106   void SelectVectors(const char *fieldName) 
00107     {this->SetVectorsSelection(fieldName);}
00109   
00111   vtkGetObjectMacro(LastDataSet, vtkDataSet);
00113 
00114 protected:
00115   vtkInterpolatedVelocityField();
00116   ~vtkInterpolatedVelocityField();
00117 
00118   vtkGenericCell* GenCell; // last cell
00119   vtkGenericCell* Cell;
00120   double* Weights; // last weights
00121   int WeightsSize;
00122   double LastPCoords[3]; // last local coordinates
00123   vtkIdType LastCellId;
00124   int CacheHit;
00125   int CacheMiss;
00126   int Caching;
00127 
00128   vtkDataSet* LastDataSet;
00129 
00130   vtkSetStringMacro(VectorsSelection);
00131   char *VectorsSelection;
00132 
00133   vtkInterpolatedVelocityFieldDataSetsType* DataSets;
00134 
00135   int FunctionValues(vtkDataSet* ds, double* x, double* f);
00136 
00137   static const double TOLERANCE_SCALE;
00138 
00139 private:
00140   vtkInterpolatedVelocityField(const vtkInterpolatedVelocityField&);  // Not implemented.
00141   void operator=(const vtkInterpolatedVelocityField&);  // Not implemented.
00142 };
00143 
00144 #endif
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152