VTK  9.3.20240424
vtkCompositeInterpolatedVelocityField.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
26#ifndef vtkCompositeInterpolatedVelocityField_h
27#define vtkCompositeInterpolatedVelocityField_h
28
30#include "vtkFiltersFlowPathsModule.h" // For export macro
31
32#include <array> // For array
33#include <vector> // For vector
34
35VTK_ABI_NAMESPACE_BEGIN
36class vtkDataSet;
37
38class VTKFILTERSFLOWPATHS_EXPORT vtkCompositeInterpolatedVelocityField
40{
41public:
43
47 void PrintSelf(ostream& os, vtkIndent indent) override;
49
54
62 virtual void AddDataSet(vtkDataSet* dataset, size_t maxCellSize = 0);
63
64 using Superclass::FunctionValues;
68 int FunctionValues(double* x, double* f) override;
69
73 int InsideTest(double* x);
74
83 virtual int SnapPointOnCell(double* pOrigin, double* pProj);
84
88 void SetLastCellId(vtkIdType c, int dataindex) override;
89
93 void SetLastCellId(vtkIdType c) override { this->Superclass::SetLastCellId(c); }
94
96
103 vtkGetMacro(LastDataSetIndex, int);
105
107
110 vtkGetMacro(CacheDataSetHit, int);
111 vtkGetMacro(CacheDataSetMiss, int);
113
119
120protected:
123
132 int FunctionValues(vtkDataSet* ds, double* x, double* f) override
133 {
134 return this->Superclass::FunctionValues(ds, x, f);
135 }
136
141 {
143 std::array<double, 6> Bounds{};
146 };
147 std::vector<DataSetBoundsInformation> DataSetsBoundsInfo;
148
149private:
151 void operator=(const vtkCompositeInterpolatedVelocityField&) = delete;
152};
153
154VTK_ABI_NAMESPACE_END
155#endif
An abstract class for obtaining the interpolated velocity values at a point.
An abstract class for obtaining the interpolated velocity values at a point.
void SetLastCellId(vtkIdType c, int dataindex) override
Set the cell id cached by the last evaluation within a specified dataset.
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...
std::vector< DataSetBoundsInformation > DataSetsBoundsInfo
void SetLastCellId(vtkIdType c) override
Set the cell id cached by the last evaluation.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for type information and printing.
virtual void AddDataSet(vtkDataSet *dataset, size_t maxCellSize=0)
Add a dataset for implicit velocity function evaluation.
void CopyParameters(vtkAbstractInterpolatedVelocityField *from) override
Copy essential parameters between instances of this class.
static vtkCompositeInterpolatedVelocityField * New()
Construct a vtkCompositeInterpolatedVelocityField class.
int FunctionValues(double *x, double *f) override
Evaluate the velocity field f at point (x, y, z).
int InsideTest(double *x)
Check if point x is inside the dataset.
virtual int SnapPointOnCell(double *pOrigin, double *pProj)
Project the provided point on current cell, current dataset.
abstract class to specify dataset behavior
Definition vtkDataSet.h:166
virtual int FunctionValues(double *x, double *f)
Evaluate functions at x_j.
a simple class to control print indentation
Definition vtkIndent.h:108
A helper class for interpolating between times during particle tracing.
int vtkIdType
Definition vtkType.h:315