1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE book PUBLIC
"-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id=
"gluBeginSurface">
9 <holder>Silicon Graphics, Inc.
</holder>
12 <refentrytitle>gluBeginSurface
</refentrytitle>
13 <manvolnum>3G
</manvolnum>
16 <refname>gluBeginSurface
</refname>
17 <refpurpose>delimit a NURBS surface definition
</refpurpose>
19 <refsynopsisdiv><title>C Specification
</title>
22 <funcdef>void
<function>gluBeginSurface
</function></funcdef>
23 <paramdef>GLUnurbs*
<parameter>nurb
</parameter></paramdef>
27 <refsynopsisdiv><title>C Specification
</title>
30 <funcdef>void
<function>gluEndSurface
</function></funcdef>
31 <paramdef>GLUnurbs*
<parameter>nurb
</parameter></paramdef>
35 <!-- eqn: ignoring delim $$ -->
36 <refsect1 id=
"parameters"><title>Parameters
</title>
39 <term><parameter>nurb
</parameter></term>
42 Specifies the NURBS object (created with
<citerefentry><refentrytitle>gluNewNurbsRenderer
</refentrytitle></citerefentry>).
48 <refsect1 id=
"description"><title>Description
</title>
50 Use
<function>gluBeginSurface
</function> to mark the beginning of a NURBS
51 surface definition. After
52 calling
<function>gluBeginSurface
</function>, make one or more calls to
53 <citerefentry><refentrytitle>gluNurbsSurface
</refentrytitle></citerefentry> to define the attributes of the surface.
54 Exactly one of these calls to
<citerefentry><refentrytitle>gluNurbsSurface
</refentrytitle></citerefentry> must have a
55 surface type of
<constant>GLU_MAP2_VERTEX_3
</constant> or
<constant>GLU_MAP2_VERTEX_4
</constant>.
56 To mark the end of the NURBS surface definition, call
57 <citerefentry><refentrytitle>gluEndSurface
</refentrytitle></citerefentry>.
60 Trimming of NURBS surfaces is supported with
<citerefentry><refentrytitle>gluBeginTrim
</refentrytitle></citerefentry>,
61 <citerefentry><refentrytitle>gluPwlCurve
</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>gluNurbsCurve
</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>gluEndTrim
</refentrytitle></citerefentry>. See the
62 <citerefentry><refentrytitle>gluBeginTrim
</refentrytitle></citerefentry> reference page for details.
65 GL evaluators are used to render the NURBS surface as a set of polygons.
66 Evaluator state is preserved during rendering
67 with
<citerefentry><refentrytitle>glPushAttrib
</refentrytitle></citerefentry>(
<constant>GLU_EVAL_BIT
</constant>) and
68 <citerefentry><refentrytitle>glPopAttrib
</refentrytitle></citerefentry>.
69 See the
<citerefentry><refentrytitle>glPushAttrib
</refentrytitle></citerefentry> reference page for details on exactly what state
73 <refsect1 id=
"example"><title>Example
</title>
75 The following commands render a textured NURBS surface with normals;
76 the texture coordinates and normals are also described as NURBS surfaces:
78 gluBeginSurface(nobj);
79 gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2);
80 gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL);
81 gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4);
86 <refsect1 id=
"seealso"><title>See Also
</title>
88 <citerefentry><refentrytitle>gluBeginCurve
</refentrytitle></citerefentry>,
89 <citerefentry><refentrytitle>gluBeginTrim
</refentrytitle></citerefentry>,
90 <citerefentry><refentrytitle>gluNewNurbsRenderer
</refentrytitle></citerefentry>,
91 <citerefentry><refentrytitle>gluNurbsCurve
</refentrytitle></citerefentry>,
92 <citerefentry><refentrytitle>gluNurbsSurface
</refentrytitle></citerefentry>,
93 <citerefentry><refentrytitle>gluPwlCurve
</refentrytitle></citerefentry>,
94 <citerefentry><refentrytitle>glPushAttrib
</refentrytitle></citerefentry>
97 <refsect1 id=
"Copyright"><title>Copyright
</title>
99 Copyright
<trademark class=
"copyright"></trademark> 1991-
2006
100 Silicon Graphics, Inc. This document is licensed under the SGI
101 Free Software B License. For details, see
102 <ulink url=
"http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/
</ulink>.