VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGenericInterpolatedVelocityField.h 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 =========================================================================*/ 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 vtkTypeMacro(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; // last cell 00123 00124 double LastPCoords[3]; // last local coordinates 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&); // Not implemented. 00142 void operator=(const vtkGenericInterpolatedVelocityField&); // Not implemented. 00143 }; 00144 00145 #endif