NURBSCurve
Note: There is a newer version of this specification see VEC 2.1.0
The NURBSCurve represents the parameter set of a NURBS (Non-Uniform rational B-Spline) in the VEC. For a complete definition of NURBS see for example (https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline).
Basically, a NURBS curve is defined by:
- a degree
- a list of control points: with at least degree + 1 points.
- a weight for each control point.
- a knots vector: a list of numbers, with (degree + #controlpoints +1) elements. Every number must be equal or greater than its predecessor, and the same value must not be repeated more than degree times. It seems that modern NURBS algorithms just require (degree + #controlpoints -1) control points.
Commonly used default assignments for the parameters are:
- weight = 1 for all control points: In this case the curve is called "non-rational".
- knot vector: equidistant and increasing values in the knot vector (e.g. 1,2,3,4,5,6,7) means the curve is "uniform" which exists in two variants.
- clamped (or pinned): If the knot vector starts and ends with degree times the same value (e.g. degree = 3, knots = [0,0,0,1,2,3,4,5,5,5], then it is clamped. This has the effect, that the first and last control point coincide with the start and end point of the curve.
- unclamped (or unpinned): If there are no repeated values in the knot vector (e.g. 1,2,3,4,5,6,7) it is unclamped.
The VEC NURBSCurve corresponds to removed BSplineCurve (VEC Version <= 1.1.3 and KBL). However, the BSplineCurve did not define weight and knot vector, so default assignments where assumed. Existing implementations are using "uniform non-rational b splines", unfortunately some implementations use "uniform clamped" and some "unclamped".
Since a NURBS cannot be rendered correctly without the knowledge of all parameters and to avoid further misconceptions the VEC allows the definition of all parameters of a NURBS. Furthermore, it requires the specification of all parameters, even if some known default assignment (e.g. non-rational) is used.
General Information
Attribute | Value |
---|---|
Owner | geo_3d |
Applied Stereotype | |
Base Classifier | Curve3D |
Is Abstract | false |
Derived Classifiers |
Attributes
Name | Type | Mult. | Description | Owning Classifier |
---|---|---|---|---|
degree | Integer | 1 | Defines the degree of the NURBS (for details see the class description of NURBSCurve). |
NURBSCurve |
knots | Double | 0..* | Defines the knot-vector of the NURBS(for details see the class description of NURBSCurve). |
NURBSCurve |
Outgoing Relations
Type | Role | Mult. | Mult. | Description |
---|---|---|---|---|
NURBSControlPoint | controlPoint | 0..* | Defines the control points of the NURBS curve (for details see the class description of NURBSCurve) |