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