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=========================================================================*/
35#ifndef vtkCompositeInterpolatedVelocityField_h
36#define vtkCompositeInterpolatedVelocityField_h
37
39#include "vtkFiltersFlowPathsModule.h" // For export macro
40
41#include <array> // For array
42#include <vector> // For vector
43
44class vtkDataSet;
45
46class VTKFILTERSFLOWPATHS_EXPORT vtkCompositeInterpolatedVelocityField
48{
49public:
51
55 void PrintSelf(ostream& os, vtkIndent indent) override;
57
62
70 virtual void AddDataSet(vtkDataSet* dataset, size_t maxCellSize = 0);
71
72 using Superclass::FunctionValues;
76 int FunctionValues(double* x, double* f) override;
77
81 int InsideTest(double* x);
82
86 virtual int SnapPointOnCell(double* pOrigin, double* pProj);
87
91 void SetLastCellId(vtkIdType c, int dataindex) override;
92
96 void SetLastCellId(vtkIdType c) override { this->Superclass::SetLastCellId(c); }
97
99
106 vtkGetMacro(LastDataSetIndex, int);
108
110
113 vtkGetMacro(CacheDataSetHit, int);
114 vtkGetMacro(CacheDataSetMiss, int);
116
122
123protected:
126
135 int FunctionValues(vtkDataSet* ds, double* x, double* f) override
136 {
137 return this->Superclass::FunctionValues(ds, x, f);
138 }
139
144 {
146 std::array<double, 6> Bounds{};
149 };
150 std::vector<DataSetBoundsInformation> DataSetsBoundsInfo;
151
152private:
154 void operator=(const vtkCompositeInterpolatedVelocityField&) = delete;
155};
156
157#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:57
virtual int FunctionValues(double *x, double *f)
Evaluate functions at x_j.
a simple class to control print indentation
Definition vtkIndent.h:34
A helper class for interpolating between times during particle tracing.
int vtkIdType
Definition vtkType.h:332