35#ifndef vtkTemporalInterpolatedVelocityField_h 
   36#define vtkTemporalInterpolatedVelocityField_h 
   39#include "vtkFiltersFlowPathsModule.h"  
   45VTK_ABI_NAMESPACE_BEGIN
 
   87    LINEAR_TRANSFORMATION = 2,
 
  100  vtkSetClampMacro(MeshOverTime, 
int, DIFFERENT, SAME_TOPOLOGY);
 
  105  vtkGetMacro(MeshOverTime, 
int);
 
  125  using Superclass::FunctionValues;
 
  140  void SelectVectors(
const char* fieldName) { this->SetVectorsSelection(fieldName); }
 
  150  void SetDataSetAtTime(
int, 
int, 
double, 
vtkDataSet*, 
bool) {}
 
  183  vtkGetVector3Macro(LastGoodVelocity, 
double);
 
  190  vtkGetMacro(CurrentWeight, 
double);
 
  202  bool IsStatic(
int) { 
return this->MeshOverTime == STATIC; }
 
  223  int MeshOverTime = MeshOverTimeTypes::DIFFERENT;
 
  240  double LastGoodVelocity[3];
 
  253  std::vector<vtkSmartPointer<vtkLocator>> Locators[2];
 
  255  std::vector<vtkSmartPointer<vtkAbstractCellLinks>> Links[2];
 
  256  std::vector<size_t> MaxCellSizes[2];
 
an abstract base class for classes that build topological links from points to cells
 
abstract superclass for composite (multi-block or AMR) datasets
 
An abstract class for obtaining the interpolated velocity values at a point.
 
abstract superclass for arrays of numeric data
 
abstract class to specify dataset behavior
 
dynamic, self-adjusting array of double
 
helper class to manage the vtkPointSet::FindCell() METHOD
 
Abstract interface for sets of functions.
 
provides thread-safe access to cells
 
a simple class to control print indentation
 
abstract base class for objects that accelerate spatial searches
 
represent and manipulate point attribute data
 
Hold a reference to a vtkObjectBase instance.
 
A helper class for interpolating between times during particle tracing.
 
int QuickTestPoint(double *x)
A utility function which evaluates the point at T1, T2 to see if it is inside the data at both times ...
 
int TestPoint(double *x)
A utility function which evaluates the point at T1, T2 to see if it is inside the data at both times ...
 
IDStates
States that define where the cell id are.
 
void AddDataSetAtTime(int N, double T, vtkDataSet *dataset)
In order to use this class, two sets of data must be supplied, corresponding to times T1 and T2.
 
MeshOverTimeTypes
Types of Variance of Mesh over time.
 
virtual void CopyParameters(vtkTemporalInterpolatedVelocityField *from)
Copy essential parameters between instances of this class.
 
void SetMeshOverTimeToLinearTransformation()
 
void SetMeshOverTimeToDifferent()
 
bool InterpolatePoint(vtkPointData *outPD1, vtkPointData *outPD2, vtkIdType outIndex)
 
void SelectVectors(const char *fieldName)
If you want to work with an arbitrary vector array, then set its name here.
 
virtual void SetVectorsSelection(const char *v)
 
void CreateLinearTransformCellLocators(const std::vector< vtkSmartPointer< vtkLocator > > &locators, std::vector< vtkSmartPointer< vtkLocator > > &linearCellLocators)
 
bool GetVorticityData(int T, double pcoords[3], double *weights, vtkGenericCell *&cell, vtkDoubleArray *cellVectors)
 
~vtkTemporalInterpolatedVelocityField() override
 
std::vector< vtkSmartPointer< vtkLocator > > InitialCellLocators
 
void AdvanceOneTimeStep()
 
bool InterpolatePoint(int T, vtkPointData *outPD1, vtkIdType outIndex)
 
virtual void SetFindCellStrategy(vtkFindCellStrategy *)
Set / get the strategy used to perform the FindCell() operation.
 
void SetCachedCellIds(vtkIdType id[2], int ds[2])
Between iterations of the Particle Tracer, Id's of the Cell are stored and then at the start of the n...
 
bool GetCachedCellIds(vtkIdType id[2], int ds[2])
Between iterations of the Particle Tracer, Id's of the Cell are stored and then at the start of the n...
 
void CreateLinks(const std::vector< vtkDataSet * > &datasets, std::vector< vtkSmartPointer< vtkAbstractCellLinks > > &links)
 
void ClearCache()
Set the last cell id to -1 so that the next search does not start from the previous cell.
 
vtkFindCellStrategy * FindCellStrategy
 
int FunctionValues(double *x, double *u) override
Evaluate the velocity field, f, at (x, y, z, t).
 
vtkTemporalInterpolatedVelocityField()
 
void CreateLocators(const std::vector< vtkDataSet * > &datasets, vtkFindCellStrategy *strategy, std::vector< vtkSmartPointer< vtkLocator > > &locators)
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
void InitializeWithLocators(vtkCompositeInterpolatedVelocityField *ivf, const std::vector< vtkDataSet * > &datasets, vtkFindCellStrategy *strategy, const std::vector< vtkSmartPointer< vtkLocator > > &locators, const std::vector< vtkSmartPointer< vtkAbstractCellLinks > > &links)
 
int FunctionValuesAtT(int T, double *x, double *u)
Evaluate the velocity field, f, at (x, y, z, t).
 
void Initialize(vtkCompositeDataSet *t0, vtkCompositeDataSet *t1)
The Initialize() method is used to build and cache supporting structures (such as locators) which are...
 
static vtkTemporalInterpolatedVelocityField * New()
Construct a vtkTemporalInterpolatedVelocityField with no initial data set.
 
static const double WEIGHT_TO_TOLERANCE
 
void SetMeshOverTimeToStatic()
 
void SetMeshOverTimeToSameTopology()
 
#define VTK_DEPRECATED_IN_9_2_0(reason)