VTK
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=========================================================================*/
44#ifndef vtkParametricSpline_h
45#define vtkParametricSpline_h
46
47class vtkSpline;
48class vtkPoints;
49
50#include "vtkCommonComputationalGeometryModule.h" // For export macro
52
53class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSpline : public vtkParametricFunction
54{
55public:
57 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
58
66
70 int GetDimension() VTK_OVERRIDE {return 1;}
71
76 void Evaluate(double u[3], double Pt[3], double Du[9]) VTK_OVERRIDE;
77
82 double EvaluateScalar(double u[3], double Pt[3], double Du[9]) VTK_OVERRIDE;
83
85
93 vtkGetObjectMacro(XSpline,vtkSpline);
94 vtkGetObjectMacro(YSpline,vtkSpline);
95 vtkGetObjectMacro(ZSpline,vtkSpline);
97
99
106 vtkGetObjectMacro(Points,vtkPoints);
108
110
115 void SetPoint(vtkIdType index, double x, double y, double z);
117
119
124 vtkSetMacro(Closed,int);
125 vtkGetMacro(Closed,int);
126 vtkBooleanMacro(Closed,int);
128
130
134 vtkSetMacro(ParameterizeByLength,int);
135 vtkGetMacro(ParameterizeByLength,int);
136 vtkBooleanMacro(ParameterizeByLength,int);
138
140
156 vtkSetClampMacro(LeftConstraint,int,0,3);
157 vtkGetMacro(LeftConstraint,int);
158 vtkSetClampMacro(RightConstraint,int,0,3);
159 vtkGetMacro(RightConstraint,int);
161
163
167 vtkSetMacro(LeftValue,double);
168 vtkGetMacro(LeftValue,double);
169 vtkSetMacro(RightValue,double);
170 vtkGetMacro(RightValue,double);
172
173protected:
175 ~vtkParametricSpline() VTK_OVERRIDE;
176
177 // Points definition
178 vtkPoints *Points;
179
180 // The interpolating splines for each of the x-y-z coordinates
181 vtkSpline *XSpline;
182 vtkSpline *YSpline;
183 vtkSpline *ZSpline;
184
185 // Supplemental variables
186 int Closed;
187 int LeftConstraint;
188 int RightConstraint;
189 double LeftValue;
190 double RightValue;
191 int ParameterizeByLength;
192
193 // Initializing the spline
194 vtkMTimeType InitializeTime;
195 int Initialize();
196
197 // Internal variable for managing parametric coordinates
198 double Length;
199 double ClosedLength;
200
201private:
202 vtkParametricSpline(const vtkParametricSpline&) VTK_DELETE_FUNCTION;
203 void operator=(const vtkParametricSpline&) VTK_DELETE_FUNCTION;
204};
205
206#endif
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract interface for parametric functions
parametric function for 1D interpolating splines
~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)
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 *)
static vtkParametricSpline * New()
Construct the spline with the following parameters: MinimumU = 0, MaximumU = 1, JoinU = 0 (unless the...
void SetZSpline(vtkSpline *)
represent and manipulate 3D points
Definition: vtkPoints.h:40
spline abstract class for interpolating splines
Definition: vtkSpline.h:63
@ index
Definition: vtkX3D.h:246
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
int vtkIdType
Definition: vtkType.h:287
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248