GLUNURBSCURVE() MachTen Programmer’s Manual GLUNURBSCURVE()
NAME
gluNurbsCurve - define the shape of a NURBS curve
C SPECIFICATION
void gluNurbsCurve( GLUnurbs* nurb,
GLint knotCount,
GLfloat *knots,
GLint stride,
GLfloat *control,
GLint order,
GLenum type )
delim $$
PARAMETERS
nurb Specifies the NURBS object (created with
gluNewNurbsRenderer).
knotCount Specifies the number
of knots in knots. knot-
Count equals the number of control points plus
the order.
knots Specifies an array of
knotCount nondecreasing
knot values.
stride Specifies the offset (as
a number of single-
precision floating-point values) between suc-
cessive curve control points.
control Specifies a pointer to
an array of control
points. The coordinates must agree with type,
specified below.
order Specifies the order of the
NURBS curve. order
equals degree + 1, hence a cubic curve has an
order of 4.
type Specifies the type of the
curve. If this curve
is defined within a gluBeginCurve/gluEndCurve
pair, then the type can be any of the valid
one-dimensional evaluator types (such as
GL_MAP1_VERTEX_3 or GL_MAP1_COLOR_4). Between a
gluBeginTrim/gluEndTrim pair, the only valid
types are GLU_MAP1_TRIM_2 and GLU_MAP1_TRIM_3.
DESCRIPTION
Use gluNurbsCurve to describe a NURBS curve.
When gluNurbsCurve appears
between a gluBegin-
Curve/gluEndCurve pair, it is used to describe a curve to
be rendered. Positional, texture, and color coordinates
are associated by presenting each as a separate gluNurb-
sCurve between a gluBeginCurve/gluEndCurve pair. No more
than one call to gluNurbsCurve for each of color, posi-
tion, and texture data can be made within a single gluBe-
ginCurve/gluEndCurve pair. Exactly one call must be made
to describe the position of the curve (a type of
GL_MAP1_VERTEX_3 or GL_MAP1_VERTEX_4).
When gluNurbsCurve appears
between a gluBe-
ginTrim/gluEndTrim pair, it is used to describe a trimming
curve on a NURBS surface. If type is GLU_MAP1_TRIM_2, then
it describes a curve in two-dimensional (u and v) parame-
ter space. If it is GLU_MAP1_TRIM_3, then it describes a
curve in two-dimensional homogeneous (u, v, and w) parame-
ter space. See the gluBeginTrim reference page for more
discussion about trimming curves.
EXAMPLE
The following commands render a textured NURBS curve with
normals:
gluBeginCurve(nobj);
gluNurbsCurve(nobj, ..., GL_MAP1_TEXTURE_COORD_2);
gluNurbsCurve(nobj, ..., GL_MAP1_NORMAL);
gluNurbsCurve(nobj, ..., GL_MAP1_VERTEX_4); gluEnd-
Curve(nobj);
NOTES
To define trim curves which stitch well, use
gluPwlCurve.
SEE ALSO
gluBeginCurve, gluBeginTrim, gluNewNurbsRenderer, gluPwl-
Curve
MachTen 2