GLintsKnotCount, GLfloat*sKnots, GLinttKnotCount, GLfloat*tKnots, GLintsStride, GLinttStride, GLfloat*control, GLintsOrder, GLinttOrder, GLenumtype)

**eqn not supported**

*nurb*- Specifies the NURBS object (created with
**gluNewNurbsRenderer**). *sKnotCount*- Specifies the number of knots in the parametric
*u*direction. *sKnots*- Specifies an array of
*sKnotCount*nondecreasing knot values in the parametric*u*direction. *tKnotCount*- Specifies the number of
knots in the parametric
*v*direction. *tKnots*- Specifies an array of
*tKnotCount*nondecreasing knot values in the parametric*v*direction. *sStride*- Specifies
the offset (as a number of single-precision floating point values) between
successive control points in the parametric
*u*direction in*control*. *tStride*- Specifies the offset (in single-precision floating-point values) between
successive control points in the parametric
*v*direction in*control*. *control*- Specifies an array containing control points for the NURBS surface. The
offsets between successive control points in the parametric
*u*and*v*directions are given by*sStride*and*tStride*. *sOrder*- Specifies the order of the NURBS
surface in the parametric
*u*direction. The order is one more than the degree, hence a surface that is cubic in*u*has a*u*order of 4. *tOrder*- Specifies
the order of the NURBS surface in the parametric
*v*direction. The order is one more than the degree, hence a surface that is cubic in*v*has a*v*order 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 *sKnotCount* knots in the *u* direction and *tKnotCount* knots in the *v*
direction with orders *sOrder* and *tOrder* must have (*sKnotCount* - *sOrder*)
$times$ (*tKnotCount* - *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)
;