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’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**.

**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.

**
Notes**

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.

**See
also**