VTK  9.3.0
vtkTupleInterpolator.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
35#ifndef vtkTupleInterpolator_h
36#define vtkTupleInterpolator_h
37
38#include "vtkObject.h"
39#include "vtkRenderingCoreModule.h" // For export macro
40
41VTK_ABI_NAMESPACE_BEGIN
42class vtkSpline;
44
45class VTKRENDERINGCORE_EXPORT vtkTupleInterpolator : public vtkObject
46{
47public:
49 void PrintSelf(ostream& os, vtkIndent indent) override;
50
55
57
61 void SetNumberOfComponents(int numComp);
62 vtkGetMacro(NumberOfComponents, int);
64
70
72
78 double GetMinimumT();
79 double GetMaximumT();
81
85 void Initialize();
86
94 void FillFromData(int nb, double* t, double** data, bool isSOADataArray = false);
95
102 void AddTuple(double t, double tuple[]);
103
108 void RemoveTuple(double t);
109
116 void InterpolateTuple(double t, double tuple[]);
117
121 enum
122 {
123 INTERPOLATION_TYPE_LINEAR = 0,
124 INTERPOLATION_TYPE_SPLINE
125 };
126
128
138 void SetInterpolationType(int type);
139 vtkGetMacro(InterpolationType, int);
140 void SetInterpolationTypeToLinear() { this->SetInterpolationType(INTERPOLATION_TYPE_LINEAR); }
141 void SetInterpolationTypeToSpline() { this->SetInterpolationType(INTERPOLATION_TYPE_SPLINE); }
143
145
154 vtkGetObjectMacro(InterpolatingSpline, vtkSpline);
156
157protected:
160
161 // The number of components being interpolated
163
164 // Specify the type of interpolation to use
166
167 // This is the default 1D spline to use
169
170 // Internal variables for interpolation functions
174
175private:
177 void operator=(const vtkTupleInterpolator&) = delete;
178};
179
180VTK_ABI_NAMESPACE_END
181#endif
a simple class to control print indentation
Definition vtkIndent.h:29
abstract base class for most VTK objects
Definition vtkObject.h:49
Defines a 1D piecewise function.
spline abstract class for interpolating splines
Definition vtkSpline.h:52
interpolate a tuple of arbitrary size
static vtkTupleInterpolator * New()
Instantiate the class.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void InterpolateTuple(double t, double tuple[])
Interpolate the list of tuples and determine a new tuple (i.e., fill in the tuple provided).
double GetMaximumT()
Obtain some information about the interpolation range.
vtkPiecewiseFunction ** Linear
void SetNumberOfComponents(int numComp)
Specify the number of tuple components to interpolate.
void RemoveTuple(double t)
Delete the tuple at a particular parameter t.
void Initialize()
Reset the class so that it contains no (t,tuple) information.
void AddTuple(double t, double tuple[])
Add another tuple to the list of tuples to be interpolated.
void FillFromData(int nb, double *t, double **data, bool isSOADataArray=false)
Add all the tuples to the list of tuples in one time, and then sort them only once.
double GetMinimumT()
Obtain some information about the interpolation range.
~vtkTupleInterpolator() override
void SetInterpolationTypeToSpline()
Specify which type of function to use for interpolation.
void InitializeInterpolation()
void SetInterpolatingSpline(vtkSpline *)
If the InterpolationType is set to spline, then this method applies.
void SetInterpolationType(int type)
Specify which type of function to use for interpolation.
void SetInterpolationTypeToLinear()
Specify which type of function to use for interpolation.
int GetNumberOfTuples()
Return the number of tuples in the list of tuples to be interpolated.