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.
knotCount 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 successive 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
gluBeginCurve/
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
gluNurbsCurve between a
gluBeginCurve/
gluEndCurve pair. No more than
one call to
gluNurbsCurve for each of color, position, and texture
data can be made within a single
gluBeginCurve/
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
gluBeginTrim/
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)
parameter space. If it is
GLU_MAP1_TRIM_3, then it describes a
curve in two-dimensional homogeneous (
u,
v, and
w)
parameter 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);
gluEndCurve(nobj);
NOTES
To define trim curves which stitch well, use
gluPwlCurve.
SEE ALSO
gluBeginCurve(3G),
gluBeginTrim(3G),
gluNewNurbsRenderer(3G),
gluPwlCurve(3G)
Index
- NAME
-
- C SPECIFICATION
-
- PARAMETERS
-
- DESCRIPTION
-
- EXAMPLE
-
- NOTES
-
- SEE ALSO
-