gluBeginSurface, gluEndSurface

The gluBeginSurface and gluEndSurface functions delimit a NURBS surface definition.

void gluBeginSurface(
  GLUnurbsObj * nobj  
);
 
void gluEndSurface(
  GLUnurbsObj * nobj  
);
 

Parameters

nobj
The NURBS object (created with gluNewNurbsRenderer).

Remarks

The gluBeginSurface and gluEndSurface functions mark the beginning and end of NURBS surface definitions, which are defined with calls to gluNurbsSurface.

    To define a surface
  1. Call gluBeginSurface to mark the beginning of a NURBS surface definition.
  2. Make one or more calls to gluNurbsSurface to define the attributes of the surface.

    Exactly one of these calls to gluNurbsSurface must have a surface type of GL_MAP2_VERTEX_3 or GL_MAP2_VERTEX_4.

  3. To mark the end of the NURBS surface definition, call gluEndSurface.

The gluBeginTrim, gluPwlCurve, gluNurbsCurve, and gluEndTrim functions support trimming of NURBS surfaces. For more information, see gluBeginTrim.

Use OpenGL evaluators to render the NURBS surface as a set of polygons. Preserve the evaluator state during rendering with glPushAttrib(GL_EVAL_BIT) and glPopAttrib. For information on exactly what states these calls preserve, see glPushAttrib.

Example

The following functions render a textured NURBS surface with normals; the texture coordinates and normals are also described as NURBS surfaces:

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

QuickInfo

  Windows NT: Use version 3.5 and later.
  Windows: Use Windows 95 and later.
  Windows CE: Unsupported.
  Header: Declared in glu.h.
  Import Library: Link with glu32.lib.

See Also

gluBeginCurve, gluBeginTrim, gluNewNurbsRenderer, gluNurbsCurve, gluNurbsSurface, gluPwlCurve