NAME

gluBeginSurface, gluEndSurface - delimit a NURBS surface definition

C SPECIFICATION

void gglluuBBeeggiinnSSuurrffaaccee( GLUnurbs* _n_u_r_b )

        

void gglluuEEnnddSSuurrffaaccee( GLUnurbs* _n_u_r_b )


        

delim $$

PARAMETERS

_n_u_r_b
Specifies the NURBS object (created with gglluuNNeewwNNuurrbbssRReennddeerreerr).

DESCRIPTION

Use gglluuBBeeggiinnSSuurrffaaccee to mark the beginning of a NURBS surface definition. After calling gglluuBBeeggiinnSSuurrffaaccee, make one or more calls to gglluuNNuurrbbssSSuurrffaaccee to define the attributes of the surface. Exactly one of these calls to gglluuNNuurrbbssSSuurrffaaccee must have a surface type of GGLL__MMAAPP22__VVEERRTTEEXX__33 or GGLL__MMAAPP22__VVEERRTTEEXX__44. To mark the end of the NURBS surface definition, call gglluuEEnnddSSuurrffaaccee.

Trimming of NURBS surfaces is supported with gglluuBBeeggiinnTTrriimm, gglluuPPwwllCCuurrvvee, gglluuNNuurrbbssCCuurrvvee, and gglluuEEnnddTTrriimm. See the gglluuBBeeggiinnTTrriimm reference page for details.

GL evaluators are used to render the NURBS surface as a set of polygons. Evaluator state is preserved during rendering with ggllPPuusshhAAttttrriibb(GGLL__EEVVAALL__BBIITT) and ggllPPooppAAttttrriibb(). See the ggllPPuusshhAAttttrriibb reference page for details on exactly what state these calls preserve.

EXAMPLE

The following commands 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

gglluuBBeeggiinnCCuurrvvee((33GG)), gglluuBBeeggiinnTTrriimm((33GG)), gglluuNNeewwNNuurrbbssRReennddeerreerr((33GG)), gglluuNNuurrbbssCCuurrvvee((33GG)), gglluuNNuurrbbssSSuurrffaaccee((33GG)), gglluuPPwwllCCuurrvvee((33GG))