voidgluNurbsSurface(GLUnurbsObj *nobj, GLintsknot_count, GLfloat *sknot, GLinttknot_count, GLfloat *tknot, GLints_stride, GLintt_stride, GLfloat *ctlarray, GLintsorder, GLinttorder, GLenumtype)

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

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.

gluBeginSurface(nobj); gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2); gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL); gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4); gluEndSurface(nobj);

back to the **OpenGL index page**

© *1995 Uwe Behrens All rights reserved*