Page Index

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

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