VTK  9.1.0
vtkParametricSpline.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkParametricSpline.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=========================================================================*/
47#ifndef vtkParametricSpline_h
48#define vtkParametricSpline_h
49
50class vtkSpline;
51class vtkPoints;
52
53#include "vtkCommonComputationalGeometryModule.h" // For export macro
55
56class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSpline : public vtkParametricFunction
57{
58public:
60 void PrintSelf(ostream& os, vtkIndent indent) override;
61
69
73 int GetDimension() override { return 1; }
74
79 void Evaluate(double u[3], double Pt[3], double Du[9]) override;
80
85 double EvaluateScalar(double u[3], double Pt[3], double Du[9]) override;
86
88
96 vtkGetObjectMacro(XSpline, vtkSpline);
97 vtkGetObjectMacro(YSpline, vtkSpline);
98 vtkGetObjectMacro(ZSpline, vtkSpline);
100
102
109 vtkGetObjectMacro(Points, vtkPoints);
111
113
118 void SetPoint(vtkIdType index, double x, double y, double z);
120
122
127 vtkSetMacro(Closed, vtkTypeBool);
128 vtkGetMacro(Closed, vtkTypeBool);
129 vtkBooleanMacro(Closed, vtkTypeBool);
131
133
137 vtkSetMacro(ParameterizeByLength, vtkTypeBool);
138 vtkGetMacro(ParameterizeByLength, vtkTypeBool);
139 vtkBooleanMacro(ParameterizeByLength, vtkTypeBool);
141
143
159 vtkSetClampMacro(LeftConstraint, int, 0, 3);
160 vtkGetMacro(LeftConstraint, int);
161 vtkSetClampMacro(RightConstraint, int, 0, 3);
162 vtkGetMacro(RightConstraint, int);
164
166
170 vtkSetMacro(LeftValue, double);
171 vtkGetMacro(LeftValue, double);
172 vtkSetMacro(RightValue, double);
173 vtkGetMacro(RightValue, double);
175
176protected:
179
180 // Points definition
182
183 // The interpolating splines for each of the x-y-z coordinates
187
188 // Supplemental variables
192 double LeftValue;
195
196 // Initializing the spline
199
200 // Internal variable for managing parametric coordinates
201 double Length;
203
204private:
206 void operator=(const vtkParametricSpline&) = delete;
207};
208
209#endif
a simple class to control print indentation
Definition: vtkIndent.h:43
abstract interface for parametric functions
parametric function for 1D interpolating splines
vtkTypeBool ParameterizeByLength
~vtkParametricSpline() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetNumberOfPoints(vtkIdType numPts)
Another API to set the points.
void SetPoint(vtkIdType index, double x, double y, double z)
Another API to set the points.
double EvaluateScalar(double u[3], double Pt[3], double Du[9]) override
Evaluate a scalar value at parametric coordinate u[0] and Pt[3].
void SetXSpline(vtkSpline *)
By default, this class is constructed with three instances of vtkCardinalSpline (for each of the x-y-...
int GetDimension() override
Return the parametric dimension of the class.
void Evaluate(double u[3], double Pt[3], double Du[9]) override
Evaluate the spline at parametric coordinate u[0] returning the point coordinate Pt[3].
void SetPoints(vtkPoints *)
Specify the list of points defining the spline.
void SetYSpline(vtkSpline *)
By default, this class is constructed with three instances of vtkCardinalSpline (for each of the x-y-...
static vtkParametricSpline * New()
Construct the spline with the following parameters: MinimumU = 0, MaximumU = 1, JoinU = 0 (unless the...
void SetZSpline(vtkSpline *)
By default, this class is constructed with three instances of vtkCardinalSpline (for each of the x-y-...
represent and manipulate 3D points
Definition: vtkPoints.h:43
spline abstract class for interpolating splines
Definition: vtkSpline.h:63
@ index
Definition: vtkX3D.h:252
int vtkTypeBool
Definition: vtkABI.h:69
int vtkIdType
Definition: vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287