This class defines an independent NURBS CV Curve. The position and weight of the control vertices (CVs) controls the shape of the curve. Unlike spline vertices, CVs don’a t necessarily lie on the curve they define. The CVs define a control lattice which surrounds the curve.
Constructors
NURBSCVCurve [<property>:<val>] [closed:<boolean>]...
Any of the object's properties may be set via optional keyword arguments on the constructor. If closed:true
is specified, the curve is created as a closed curve, otherwise it is an open curve.
getObject <nurbsset> <index>
Properties
<nurbscvcurve>.order: integer
The order of the curve. This is one more than the degree of polynomial of any segment of the curve. All curves have a degree. The degree of a curve is the highest exponent in the equation used to represent it. A linear equation is degree 1, a quadratic equation degree 2. NURBS curves typically are represented by cubic equations and have a degree of 3.
<nurbscvcurve>.numKnots: integer
The number of knots in the curve. If this value is changed, the previous knot data is NOT maintained. Because they are generated mathematically, NURBS curves have a parameter space in addition to the 3D geometric space in which they are displayed. Specifically, an array of values called knots specifies the extent of influence of each control vertex (CV) on the curve or surface.
<nurbscvcurve>.numCVs: integer
The number of control vertices in the curve. If this value is changed, the previous control vertex data is NOT maintained.
<nurbscvcurve>.transform: matrix3
The transformation matrix for the NURBSCVCurve. This controls the relative position of the item within a NURBSSet.
<nurbscvcurve>.endsOverlap: boolean, read-only
true
if the ends of the curve overlap even though the curve may not be closed (that is, the tangents match at the ends), false
otherwise.
<nurbscvcurve>.autoParam:#notAutomatic, #autoCentripetal, #autoUniform
#notAutomatic
, #autoCentripetal
, and #autoUniform
correspond to the Automatic Reparam options in the CV Curve rollouts: none, chord length and uniform, respectively. Defaults to #notAutomatic
.
Methods
close <nurbscvcurve>
Forces the curve to be closed.
getKnot <nurbscvcurve> <index> setKnot <nurbscvcurve> <index> <float>
Get and set the indexed knot’s value, indexes are 1-based. Knots are a mathematical construct that helps define the span of control of CVs and blending functions that define NURBS Curves and Surfaces. The knots are an array of values that determines the parameterization of a curve. Values in the knot vector are nondecreasing. The knots specify the region of influence of the CVs on the curve. It is a way of partitioning the parameter space up into different segments. A B-spline curve or a NURBS curve is a curve that is defined by a series of segments. On each one of the segments the curve is like a polynomial, or in the case of a rational one, it's like the ratio of polynomials. The knot vector describes how to partition the parameter space of the curve up for each of the different pieces of the polynomial.
getCV <nurbscvcurve> <cv_index>
Get the indexed CV as a NURBSControlVertex, indexes are 1-based.
setCV <nurbscvcurve> <cv_index> <NURBSControlVertex>
Sets the indexed CV to the given NURBSControlVertex, indexes are 1-based.
refine <nurbscvcurve> <u_param>
Add a new, interpolated CV at the given parametric point along the curve.
reparameterize <nurbscvcurve> (#centripetal | #uniform)
Reparameterizes the curve by chord length ( #centripetal
) or uniform ( #uniform
) uniform parameterization.
CV curves and surfaces must obey the relationship that "order + number of CVs = number of knots". If this is not the case in most cases no object will be created and in some cases an assertion fault might be generated.