VTK  9.6.20260614
vtkInterpolateCalculator.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
10
11#ifndef vtkInterpolateCalculator_h
12#define vtkInterpolateCalculator_h
13
15#include "vtkFiltersCellGridModule.h" // For export macro.
16#include "vtkVector.h" // For API.
17
18VTK_ABI_NAMESPACE_BEGIN
19
20class vtkDataArray;
21class vtkIdTypeArray;
22
26class VTKFILTERSCELLGRID_EXPORT vtkInterpolateCalculator : public vtkCellAttributeCalculator
27{
28public:
30 void PrintSelf(ostream& os, vtkIndent indent) override;
31
38 virtual void Evaluate(vtkIdType cellId, const vtkVector3d& rst, std::vector<double>& value) = 0;
39
41 virtual void Evaluate(vtkIdTypeArray* cellIds, vtkDataArray* rst, vtkDataArray* result) = 0;
42
44 virtual bool AnalyticDerivative() const { return false; }
45
56 virtual void EvaluateDerivative(vtkIdType cellId, const vtkVector3d& rst,
57 std::vector<double>& jacobian, double neighborhood = 1e-3);
58
60 virtual void EvaluateDerivative(
61 vtkIdTypeArray* cellIds, vtkDataArray* rst, vtkDataArray* result) = 0;
62
63#if 0
68 virtual bool IsInside(vtkIdType cellId, const vtkVector3d& rst) = 0;
69#endif
70
71protected:
73 ~vtkInterpolateCalculator() override = default;
74
75private:
77 void operator=(const vtkInterpolateCalculator&) = delete;
78};
79
80VTK_ABI_NAMESPACE_END
81#endif // vtkInterpolateCalculator_h
RealT rst
Definition TetF2Basis.h:17
vtkCellAttributeCalculator()=default
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition vtkIndent.h:108
virtual void Evaluate(vtkIdTypeArray *cellIds, vtkDataArray *rst, vtkDataArray *result)=0
Subclasses may override this method to perform multiple evaluations at a time.
virtual void Evaluate(vtkIdType cellId, const vtkVector3d &rst, std::vector< double > &value)=0
virtual bool AnalyticDerivative() const
Return true if the function has an analytic derivative.
~vtkInterpolateCalculator() override=default
virtual void EvaluateDerivative(vtkIdTypeArray *cellIds, vtkDataArray *rst, vtkDataArray *result)=0
Subclasses may override this method to perform multiple derivative-evaluations at a time.
vtkInterpolateCalculator()=default
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void EvaluateDerivative(vtkIdType cellId, const vtkVector3d &rst, std::vector< double > &jacobian, double neighborhood=1e-3)
Return the derivative of the function at rst.
#define vtkDataArray
int vtkIdType
Definition vtkType.h:363