VTK  9.2.5
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
47class vtkDataSet;
48
49class VTKFILTERSFLOWPATHS_EXPORT vtkCompositeInterpolatedVelocityField
51{
52public:
54
58 void PrintSelf(ostream& os, vtkIndent indent) override;
60
65
73 virtual void AddDataSet(vtkDataSet* dataset, size_t maxCellSize = 0);
74
75 using Superclass::FunctionValues;
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
126protected:
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
155private:
157 void operator=(const vtkCompositeInterpolatedVelocityField&) = delete;
158};
159
160#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:63
virtual int FunctionValues(double *x, double *f)
Evaluate functions at x_j.
a simple class to control print indentation
Definition: vtkIndent.h:40
A helper class for interpolating between times during particle tracing.
int vtkIdType
Definition: vtkType.h:332