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 =========================================================================*/
130 #ifndef vtkParametricSpline_h
131 #define vtkParametricSpline_h
132 
133 class vtkSpline;
134 class vtkPoints;
135 
136 #include "vtkCommonComputationalGeometryModule.h" // For export macro
137 #include "vtkParametricFunction.h"
138 
139 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSpline : public vtkParametricFunction
140 {
141 public:
143  void PrintSelf(ostream& os, vtkIndent indent) override;
144 
152 
156  int GetDimension() override { return 1; }
157 
162  void Evaluate(double u[3], double Pt[3], double Du[9]) override;
163 
168  double EvaluateScalar(double u[3], double Pt[3], double Du[9]) override;
169 
171 
179  vtkGetObjectMacro(XSpline, vtkSpline);
180  vtkGetObjectMacro(YSpline, vtkSpline);
181  vtkGetObjectMacro(ZSpline, vtkSpline);
183 
185 
192  vtkGetObjectMacro(Points, vtkPoints);
194 
196 
201  void SetPoint(vtkIdType index, double x, double y, double z);
203 
205 
210  vtkSetMacro(Closed, vtkTypeBool);
211  vtkGetMacro(Closed, vtkTypeBool);
212  vtkBooleanMacro(Closed, vtkTypeBool);
214 
216 
220  vtkSetMacro(ParameterizeByLength, vtkTypeBool);
221  vtkGetMacro(ParameterizeByLength, vtkTypeBool);
222  vtkBooleanMacro(ParameterizeByLength, vtkTypeBool);
224 
226 
242  vtkSetClampMacro(LeftConstraint, int, 0, 3);
243  vtkGetMacro(LeftConstraint, int);
244  vtkSetClampMacro(RightConstraint, int, 0, 3);
245  vtkGetMacro(RightConstraint, int);
247 
249 
253  vtkSetMacro(LeftValue, double);
254  vtkGetMacro(LeftValue, double);
255  vtkSetMacro(RightValue, double);
256  vtkGetMacro(RightValue, double);
258 
259 protected:
262 
263  // Points definition
265 
266  // The interpolating splines for each of the x-y-z coordinates
270 
271  // Supplemental variables
275  double LeftValue;
276  double RightValue;
278 
279  // Initializing the spline
281  int Initialize();
282 
283  // Internal variable for managing parametric coordinates
284  double Length;
285  double ClosedLength;
286 
287 private:
288  vtkParametricSpline(const vtkParametricSpline&) = delete;
289  void operator=(const vtkParametricSpline&) = delete;
290 };
291 
292 #endif
a simple class to control print indentation
Definition: vtkIndent.h:119
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].
static vtkParametricSpline * New()
Construct the spline with the following parameters: MinimumU = 0, MaximumU = 1, JoinU = 0 (unless the...
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-...
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:149
spline abstract class for interpolating splines
Definition: vtkSpline.h:82
@ index
Definition: vtkX3D.h:252
int vtkTypeBool
Definition: vtkABI.h:69
int vtkIdType
Definition: vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287