gluBeginSurface, gluEndSurface

[New - Windows 95, OEM Service Release 2]

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

 

Remarks

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

{bmc bm4.MRB}        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 gluBeginTrim14DY_E1.

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 glPushAttrib2Z6IY_.

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

 

See Also

, , gluBeginTrim, gluNewNurbsRenderer, gluNurbsCurve, gluNurbsSurface, gluPwlCurve