gluNurbsSurface
NAME
gluNurbsSurface -- define the shape of a NURBS surface
C SPECIFICATION
void gluNurbsSurface(GLUnurbsObj *nobj,
GLint sknot_count,
GLfloat *sknot,
GLint tknot_count,
GLfloat *tknot,
GLint s_stride,
GLint t_stride,
GLfloat *ctlarray,
GLint sorder,
GLint torder,
GLenum type)
PARAMETERS
- nobj
-
Specifies the NURBS object (created with
gluNewNurbsRenderer).
- sknot_count
-
Specifies the number of knots in the parametric s direction.
- sknot
-
Specifies an array of sknot_count nondecreasing knot values in the
parametric s direction.
- tknot_count
-
Specifies the number of knots in the parametric t direction.
- tknot
-
Specifies an array of tknot_count nondecreasing knot values in the
parametric t direction.
- s_stride
-
Specifies the offset (as a number of single-precision floating point values)
between successive control points in the parametric s direction in
ctlarray.
- t_stride
-
Specifies the offset (in single-precision floating-point values) between
successive control points in the parametric t direction in
ctlarray.
- ctlarray
-
Specifies an array containing control points for the NURBS surface. The
offsets between successive control points in the parametric s and
t directions are given by s_stride and t_stride.
- sorder
-
Specifies the order of the NURBS surface in the parametric s
direction. The order is one more than the degree, hence a surface that is
cubic in s has a sorder of 4.
- torder
-
Specifies the order of the NURBS surface in the parametric t
direction. The order is one more than the degree, hence a surface that is
cubic in t has a torder of 4.
- type
-
Specifies type of the surface. type can be any of the valid
two-dimensional evaluator types (such as GL_MAP2_VERTEX_3 or
GL_MAP2_COLOR_4).
DESCRIPTION
Use gluNurbsSurface within a NURBS (Non-Uniform Rational B-Spline)
surface definition to describe the shape of a NURBS surface (before any
trimming). To mark the beginning of a NURBS surface definition, use the
gluBeginSurface command. To mark
the end of a NURBS surface definition, use the
gluEndSurface command. Call
gluNurbsSurface within a NURBS surface definition only.
Positional, texture, and color coordinates are associated with a surface by
presenting each as a separate gluNurbsSurface between a
gluBeginSurface /
gluEndSurface pair. No more than one
call to gluNurbsSurface for each of color, position, and texture data
can be made within a single
gluBeginSurface /
gluEndSurface pair. Exactly one
call must be made to describe the position of the surface (a type of
GL_MAP2_VERTEX_3 or GL_MAP2_VERTEX_4).
A NURBS surface can be trimmed by using the commands
gluNurbsCurve and
gluPwlCurve between calls to
gluBeginTrim and
gluEndTrim.
Note that a gluNurbsSurface with sknot_count knots in the
s direction and tknot_count knots in the t direction
with orders sorder and torder must have (sknot_count -
sorder) * (tknot_count - torder) control points.
EXAMPLE
The following commands render a textured NURBS surface with normals; the
texture coordinates and normals are also NURBS surfaces:
gluBeginSurface(nobj);
gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2);
gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL);
gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4);
gluEndSurface(nobj);
SEE ALSO
gluBeginSurface,
gluBeginTrim,
gluNewNurbsRenderer,
gluNurbsCurve,
gluPwlCurve
back to the OpenGL index page
© 1995 Uwe Behrens All rights reserved