VTK  9.2.6
vtkCompositeInterpolatedVelocityField.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCompositeInterpolatedVelocityField.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
38 #ifndef vtkCompositeInterpolatedVelocityField_h
39 #define vtkCompositeInterpolatedVelocityField_h
40 
42 #include "vtkFiltersFlowPathsModule.h" // For export macro
43 
44 #include <array> // For array
45 #include <vector> // For vector
46 
47 class vtkDataSet;
48 
49 class VTKFILTERSFLOWPATHS_EXPORT vtkCompositeInterpolatedVelocityField
51 {
52 public:
54 
58  void PrintSelf(ostream& os, vtkIndent indent) override;
60 
65 
73  virtual void AddDataSet(vtkDataSet* dataset, size_t maxCellSize = 0);
74 
79  int FunctionValues(double* x, double* f) override;
80 
84  int InsideTest(double* x);
85 
89  virtual int SnapPointOnCell(double* pOrigin, double* pProj);
90 
94  void SetLastCellId(vtkIdType c, int dataindex) override;
95 
99  void SetLastCellId(vtkIdType c) override { this->Superclass::SetLastCellId(c); }
100 
102 
109  vtkGetMacro(LastDataSetIndex, int);
111 
113 
116  vtkGetMacro(CacheDataSetHit, int);
117  vtkGetMacro(CacheDataSetMiss, int);
119 
125 
126 protected:
129 
138  int FunctionValues(vtkDataSet* ds, double* x, double* f) override
139  {
140  return this->Superclass::FunctionValues(ds, x, f);
141  }
142 
147  {
149  std::array<double, 6> Bounds{};
152  };
153  std::vector<DataSetBoundsInformation> DataSetsBoundsInfo;
154 
155 private:
157  void operator=(const vtkCompositeInterpolatedVelocityField&) = delete;
158 };
159 
160 #endif
A helper class for interpolating between times during particle tracing.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
An abstract class for obtaining the interpolated velocity values at a point.
std::vector< DataSetBoundsInformation > DataSetsBoundsInfo
An abstract class for obtaining the interpolated velocity values at a point.
int vtkIdType
Definition: vtkType.h:332
void SetLastCellId(vtkIdType c) override
Set the cell id cached by the last evaluation.
virtual void CopyParameters(vtkAbstractInterpolatedVelocityField *from)
Copy essential parameters between instances of this class.
a simple class to control print indentation
Definition: vtkIndent.h:39
int FunctionValues(double *x, double *f) override=0
Evaluate the velocity field f at point (x, y, z).
virtual int FunctionValues(double *x, double *f)
Evaluate functions at x_j.
virtual void SetLastCellId(vtkIdType c)
Get/Set the id of the cell cached from last evaluation.
int FunctionValues(vtkDataSet *ds, double *x, double *f) override
Evaluate the velocity field f at point (x, y, z) in a specified dataset by either involving vtkPointL...
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for obtaining type information and printing the object state.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...