00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00041 #ifndef __vtkGenericInterpolatedVelocityField_h
00042 #define __vtkGenericInterpolatedVelocityField_h
00043
00044 #include "vtkFunctionSet.h"
00045
00046 class vtkGenericDataSet;
00047 class vtkGenericCellIterator;
00048 class vtkGenericAdaptorCell;
00049
00050 class vtkGenericInterpolatedVelocityFieldDataSetsType;
00051
00052 class VTK_FILTERING_EXPORT vtkGenericInterpolatedVelocityField : public vtkFunctionSet
00053 {
00054 public:
00055 vtkTypeRevisionMacro(vtkGenericInterpolatedVelocityField,vtkFunctionSet);
00056 virtual void PrintSelf(ostream& os, vtkIndent indent);
00057
00060 static vtkGenericInterpolatedVelocityField *New();
00061
00064 virtual int FunctionValues(double* x, double* f);
00065
00070 virtual void AddDataSet(vtkGenericDataSet* dataset);
00071
00074 void ClearLastCell();
00075
00077 vtkGenericAdaptorCell *GetLastCell();
00078
00082 int GetLastLocalCoordinates(double pcoords[3]);
00083
00085
00086 vtkGetMacro(Caching, int);
00087 vtkSetMacro(Caching, int);
00088 vtkBooleanMacro(Caching, int);
00090
00092
00093 vtkGetMacro(CacheHit, int);
00094 vtkGetMacro(CacheMiss, int);
00096
00098
00101 vtkGetStringMacro(VectorsSelection);
00102 void SelectVectors(const char *fieldName)
00103 {this->SetVectorsSelection(fieldName);}
00105
00107
00111 vtkGetObjectMacro(LastDataSet, vtkGenericDataSet);
00113
00116 virtual void CopyParameters(vtkGenericInterpolatedVelocityField* from);
00117
00118 protected:
00119 vtkGenericInterpolatedVelocityField();
00120 ~vtkGenericInterpolatedVelocityField();
00121
00122 vtkGenericCellIterator *GenCell;
00123
00124 double LastPCoords[3];
00125 int CacheHit;
00126 int CacheMiss;
00127 int Caching;
00128
00129 vtkGenericDataSet* LastDataSet;
00130
00131 vtkSetStringMacro(VectorsSelection);
00132 char *VectorsSelection;
00133
00134 vtkGenericInterpolatedVelocityFieldDataSetsType* DataSets;
00135
00136 int FunctionValues(vtkGenericDataSet* ds, double* x, double* f);
00137
00138 static const double TOLERANCE_SCALE;
00139
00140 private:
00141 vtkGenericInterpolatedVelocityField(const vtkGenericInterpolatedVelocityField&);
00142 void operator=(const vtkGenericInterpolatedVelocityField&);
00143 };
00144
00145 #endif