VTK  9.2.6
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=========================================================================*/
37
38#ifndef vtkParametricSpline_h
39#define vtkParametricSpline_h
40
41class vtkSpline;
42class vtkPoints;
43
44#include "vtkCommonComputationalGeometryModule.h" // For export macro
46
47class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSpline : public vtkParametricFunction
48{
49public:
51 void PrintSelf(ostream& os, vtkIndent indent) override;
52
60
64 int GetDimension() override { return 1; }
65
70 void Evaluate(double u[3], double Pt[3], double Du[9]) override;
71
76 double EvaluateScalar(double u[3], double Pt[3], double Du[9]) override;
77
79
87 vtkGetObjectMacro(XSpline, vtkSpline);
88 vtkGetObjectMacro(YSpline, vtkSpline);
89 vtkGetObjectMacro(ZSpline, vtkSpline);
91
93
100 vtkGetObjectMacro(Points, vtkPoints);
102
104
109 void SetPoint(vtkIdType index, double x, double y, double z);
111
113
118 vtkSetMacro(Closed, vtkTypeBool);
119 vtkGetMacro(Closed, vtkTypeBool);
120 vtkBooleanMacro(Closed, vtkTypeBool);
122
124
132
134
150 vtkSetClampMacro(LeftConstraint, int, 0, 3);
151 vtkGetMacro(LeftConstraint, int);
152 vtkSetClampMacro(RightConstraint, int, 0, 3);
153 vtkGetMacro(RightConstraint, int);
155
157
161 vtkSetMacro(LeftValue, double);
162 vtkGetMacro(LeftValue, double);
163 vtkSetMacro(RightValue, double);
164 vtkGetMacro(RightValue, double);
166
167protected:
170
171 // Points definition
173
174 // The interpolating splines for each of the x-y-z coordinates
178
179 // Supplemental variables
183 double LeftValue;
186
187 // Initializing the spline
190
191 // Internal variable for managing parametric coordinates
192 double Length;
194
195private:
197 void operator=(const vtkParametricSpline&) = delete;
198};
199
200#endif
a simple class to control print indentation
Definition vtkIndent.h:34
~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:34
spline abstract class for interpolating splines
Definition vtkSpline.h:63
int vtkTypeBool
Definition vtkABI.h:69
int vtkIdType
Definition vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287