VTK  9.7.1
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
11 #ifndef vtkInterpolateCalculator_h
12 #define vtkInterpolateCalculator_h
13 
15 #include "vtkFiltersCellGridModule.h" // For export macro.
16 #include "vtkVector.h" // For API.
17 
18 VTK_ABI_NAMESPACE_BEGIN
19 
20 class vtkDataArray;
21 class vtkIdTypeArray;
22 
26 class VTKFILTERSCELLGRID_EXPORT vtkInterpolateCalculator : public vtkCellAttributeCalculator
27 {
28 public:
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
64  virtual bool IsInside(vtkIdType cellId, const vtkVector3d& rst) = 0;
69 #endif
70 
71 protected:
72  vtkInterpolateCalculator() = default;
73  ~vtkInterpolateCalculator() override = default;
74 
75 private:
77  void operator=(const vtkInterpolateCalculator&) = delete;
78 };
79 
80 VTK_ABI_NAMESPACE_END
81 #endif // vtkInterpolateCalculator_h
Perform a per-cell calculation on a vtkCellAttribute.
Calculate field values at a point in a cell's parametric space.
RealT rst
Definition: TetF2Basis.h:17
dynamic, self-adjusting array of vtkIdType
int vtkIdType
Definition: vtkType.h:363
a simple class to control print indentation
Definition: vtkIndent.h:28
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
virtual bool AnalyticDerivative() const
Return true if the function has an analytic derivative.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.