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

AttributeValue
Ownergeo_3d
Applied Stereotype
Base ClassifierCurve3D
Is Abstractfalse
Derived Classifiers

Attributes

NameTypeMult.DescriptionOwning Classifier
degreeInteger1Defines the degree of the NURBS (for details see the class description of NURBSCurve).NURBSCurve
knotsDouble0..*

Defines the knot-vector of the NURBS(for details see the class description of NURBSCurve).

NURBSCurve

Outgoing Relations

TypeRoleMult.Mult.Description
NURBSControlPointcontrolPoint0..*

Defines the control points of the NURBS curve (for details see the class description of NURBSCurve)

Previous