rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man2 / gluNurbsProperty.xml
diff --git a/upstream-doc/man2/gluNurbsProperty.xml b/upstream-doc/man2/gluNurbsProperty.xml
new file mode 100644 (file)
index 0000000..5ea35cf
--- /dev/null
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
+              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
+<refentry id="gluNurbsProperty">
+    <refmeta>
+        <refmetainfo>
+            <copyright>
+                <year>1991-2006</year>
+                <holder>Silicon Graphics, Inc.</holder>
+            </copyright>
+        </refmetainfo>
+        <refentrytitle>gluNurbsProperty</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>gluNurbsProperty</refname>
+        <refpurpose>set a NURBS property</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv><title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+                <funcdef>void <function>gluNurbsProperty</function></funcdef>
+                <paramdef>GLUnurbs* <parameter>nurb</parameter></paramdef>
+                <paramdef>GLenum <parameter>property</parameter></paramdef>
+                <paramdef>GLfloat <parameter>value</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <!-- eqn: ignoring delim $$ -->
+    <refsect1 id="parameters"><title>Parameters</title>
+        <variablelist>
+        <varlistentry>
+            <term><parameter>nurb</parameter></term>
+            <listitem>
+                <para>
+                    Specifies the NURBS object (created with <citerefentry><refentrytitle>gluNewNurbsRenderer</refentrytitle></citerefentry>).
+                </para>
+            </listitem>
+        </varlistentry>
+        <varlistentry>
+            <term><parameter>property</parameter></term>
+            <listitem>
+                <para>
+                    Specifies the property to be set. Valid values are
+                    <constant>GLU_SAMPLING_TOLERANCE</constant>,
+                    <constant>GLU_DISPLAY_MODE</constant>, 
+                    <constant>GLU_CULLING</constant>,
+                    <constant>GLU_AUTO_LOAD_MATRIX</constant>,
+                    <constant>GLU_PARAMETRIC_TOLERANCE</constant>,
+                    <constant>GLU_SAMPLING_METHOD</constant>,
+                    <constant>GLU_U_STEP</constant>,
+                    <constant>GLU_V_STEP</constant>, or
+                    <constant>GLU_NURBS_MODE</constant>.
+                </para>
+            </listitem>
+        </varlistentry>
+        <varlistentry>
+            <term><parameter>value</parameter></term>
+            <listitem>
+                <para>
+                    Specifies the value of the indicated property.
+                    It may be a numeric value or one of 
+                    <constant>GLU_OUTLINE_POLYGON</constant>,
+                    <constant>GLU_FILL</constant>,
+                    <constant>GLU_OUTLINE_PATCH</constant>,
+                    <constant>GLU_TRUE</constant>,
+                    <constant>GLU_FALSE</constant>,
+                    <constant>GLU_PATH_LENGTH</constant>,
+                    <constant>GLU_PARAMETRIC_ERROR</constant>,
+                    <constant>GLU_DOMAIN_DISTANCE</constant>,
+                    <constant>GLU_NURBS_RENDERER</constant>, or
+                    <constant>GLU_NURBS_TESSELLATOR</constant>.
+                </para>
+            </listitem>
+        </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 id="description"><title>Description</title>
+        <para>
+            <function>gluNurbsProperty</function> is used to control properties stored in a NURBS object. These
+            properties affect the way that a NURBS curve is rendered. The accepted 
+            values for <parameter>property</parameter> are as follows:
+        </para>
+        <variablelist>
+            <varlistentry>
+                <term><constant>GLU_NURBS_MODE</constant></term>
+                <listitem>
+                    <para>
+                        <parameter>value</parameter> should be set to be either <constant>GLU_NURBS_RENDERER</constant> or
+                        <constant>GLU_NURBS_TESSELLATOR</constant>. When set to <constant>GLU_NURBS_RENDERER</constant>, NURBS objects
+                        are tessellated into OpenGL primitives and sent to the pipeline for
+                        rendering. When set to <constant>GLU_NURBS_TESSELLATOR</constant>, NURBS objects are
+                        tessellated into OpenGL primitives but the vertices, normals, colors, and/or textures are 
+                        retrieved back through a callback interface (see <citerefentry><refentrytitle>gluNurbsCallback</refentrytitle></citerefentry>). This allows the user to cache the
+                        tessellated results for further processing.
+                        The initial value is <constant>GLU_NURBS_RENDERER</constant>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_SAMPLING_METHOD</constant> </term>
+                <listitem>
+                    <para>
+                        Specifies how a NURBS surface should be
+                        tessellated.
+                        <parameter>value</parameter> may be one of <constant>GLU_PATH_LENGTH</constant>,
+                        <constant>GLU_PARAMETRIC_ERROR</constant>,  <constant>GLU_DOMAIN_DISTANCE</constant>,
+                        <constant>GLU_OBJECT_PATH_LENGTH</constant>, or
+                        <constant>GLU_OBJECT_PARAMETRIC_ERROR</constant>.
+                        When set to <constant>GLU_PATH_LENGTH</constant>, the surface is rendered so that
+                        the maximum length, in 
+                        pixels, of the edges of the tessellation polygons is no greater than
+                        what is specified by <constant>GLU_SAMPLING_TOLERANCE</constant>. 
+                    </para>
+                    <para>
+                        <constant>GLU_PARAMETRIC_ERROR</constant> specifies that the surface is rendered in such a 
+                        way that the value specified by <constant>GLU_PARAMETRIC_TOLERANCE</constant> describes the 
+                        maximum distance, in pixels, between the tessellation polygons and the
+                        surfaces they approximate. 
+                    </para>
+                    <para>
+                        <constant>GLU_DOMAIN_DISTANCE</constant> allows users to specify, in parametric coordinates,
+                        how many sample points per unit length are taken in <emphasis>u</emphasis>, <emphasis>v</emphasis>
+                        direction.
+                    </para>
+                    <para>
+                        <constant>GLU_OBJECT_PATH_LENGTH</constant>  is similar to <constant>GLU_PATH_LENGTH</constant>
+                        except that it is view independent; that is, the surface is rendered so that the maximum length, in object space, of edges of the tessellation polygons is no greater than what is specified by <constant>GLU_SAMPLING_TOLERANCE</constant>.
+                    </para>
+                    <para>
+                        <constant>GLU_OBJECT_PARAMETRIC_ERROR</constant> is similar to  <constant>GLU_PARAMETRIC_ERROR</constant> except that it is view independent; that is, the surface is rendered in such a way that the value specified by <constant>GLU_PARAMETRIC_TOLERANCE</constant> describes the maximum distance, in object space, between the tessellation polygons and the surfaces they approximate.
+                    </para>
+                    <para>
+                        The initial value of <constant>GLU_SAMPLING_METHOD</constant> is <constant>GLU_PATH_LENGTH</constant>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_SAMPLING_TOLERANCE</constant></term>
+                <listitem>
+                    <para>
+                        Specifies the maximum length, in pixels or in object space length unit,
+                        to use when the sampling method is set to <constant>GLU_PATH_LENGTH</constant> or
+                        <constant>GLU_OBJECT_PATH_LENGTH</constant>.
+                        The NURBS code is conservative when rendering a curve
+                        or surface, so the actual length can be somewhat shorter. The initial
+                        value is 50.0 pixels. 
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_PARAMETRIC_TOLERANCE</constant></term>
+                <listitem>
+                    <para>
+                        Specifies the maximum distance, in pixels or in object space length unit,
+                        to use when the sampling method is <constant>GLU_PARAMETRIC_ERROR</constant> or
+                        <constant>GLU_OBJECT_PARAMETRIC_ERROR</constant>.
+                        The initial value is 0.5.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_U_STEP</constant></term>
+                <listitem>
+                    <para>
+                        Specifies the number of sample points per unit length taken
+                        along the <emphasis>u</emphasis> axis in parametric coordinates. It is needed when
+                        <constant>GLU_SAMPLING_METHOD</constant> is set to <constant>GLU_DOMAIN_DISTANCE</constant>.
+                        The initial value is 100.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_V_STEP</constant></term>
+                <listitem>
+                    <para>
+                        Specifies the number of sample points per unit length taken
+                        along the <emphasis>v</emphasis> axis in parametric coordinate. It is needed when
+                        <constant>GLU_SAMPLING_METHOD</constant> is set to <constant>GLU_DOMAIN_DISTANCE</constant>. The initial 
+                        value is 100.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_DISPLAY_MODE</constant></term>
+                <listitem>
+                    <para>
+                        <parameter>value</parameter> can be set to
+                        <constant>GLU_OUTLINE_POLYGON</constant>, <constant>GLU_FILL</constant>, or 
+                        <constant>GLU_OUTLINE_PATCH</constant>.
+                        When <constant>GLU_NURBS_MODE</constant> is set to be <constant>GLU_NURBS_RENDERER</constant>,
+                        <parameter>value</parameter> defines how a NURBS surface should be rendered.
+                        When <parameter>value</parameter> is set to <constant>GLU_FILL</constant>, the surface is rendered as a
+                        set of polygons. When <parameter>value</parameter> is set to
+                        <constant>GLU_OUTLINE_POLYGON</constant>, the NURBS library draws only the outlines
+                        of the polygons created by tessellation. When <parameter>value</parameter> is set to
+                        <constant>GLU_OUTLINE_PATCH</constant> just the outlines of patches and trim 
+                        curves defined by the user are drawn.
+                    </para>
+                    <para>
+                        When <constant>GLU_NURBS_MODE</constant> is set to be <constant>GLU_NURBS_TESSELLATOR</constant>,
+                        <parameter>value</parameter> defines how a NURBS surface should be tessellated.
+                        When <constant>GLU_DISPLAY_MODE</constant> is set to <constant>GLU_FILL</constant> or
+                        <constant>GLU_OUTLINE_POLYGON</constant>, 
+                        the NURBS surface is tessellated into OpenGL triangle primitives that can be
+                        retrieved back  through callback functions. If <constant>GLU_DISPLAY_MODE</constant> is set to 
+                        <constant>GLU_OUTLINE_PATCH</constant>, only the outlines of the patches and trim curves are generated as a sequence of line strips that can be retrieved back through callback functions.
+                    </para>
+                    <para>
+                        The initial value is <constant>GLU_FILL</constant>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_CULLING</constant></term>
+                <listitem>
+                    <para>
+                        <parameter>value</parameter> is a boolean value that, when set to <constant>GLU_TRUE</constant>, indicates that 
+                        a NURBS curve should be discarded prior to tessellation if its control points
+                        lie outside the current viewport. The initial value is <constant>GLU_FALSE</constant>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term><constant>GLU_AUTO_LOAD_MATRIX</constant></term>
+                <listitem>
+                    <para>
+                        <parameter>value</parameter> is a boolean value. When set to <constant>GLU_TRUE</constant>, the NURBS code 
+                        downloads the projection matrix, the modelview matrix, and the 
+                        viewport from the GL server to compute sampling and 
+                        culling
+                        matrices for each NURBS curve that is rendered. Sampling and culling matrices
+                        are required to determine the tessellation of a NURBS surface into line segments
+                        or polygons and to cull a NURBS surface if it lies outside the viewport.
+                    </para>
+                    <para>
+                        If this mode is set to <constant>GLU_FALSE</constant>, then the program needs
+                        to provide a projection matrix, a modelview matrix, and a viewport
+                        for the NURBS renderer to use to construct sampling and culling matrices.
+                        This can be done with the <citerefentry><refentrytitle>gluLoadSamplingMatrices</refentrytitle></citerefentry> function.
+                        This mode is initially set to <constant>GLU_TRUE</constant>.
+                        Changing it from <constant>GLU_TRUE</constant> to <constant>GLU_FALSE</constant> does not affect
+                        the sampling and culling matrices until 
+                        <citerefentry><refentrytitle>gluLoadSamplingMatrices</refentrytitle></citerefentry>
+                        is called.
+                    </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 id="notes"><title>Notes</title>
+        <para>
+            If <constant>GLU_AUTO_LOAD_MATRIX</constant> is true, sampling and culling may be
+            executed incorrectly if NURBS routines are compiled into a display list.
+        </para>
+        <para>
+            A <parameter>property</parameter> of 
+            <constant>GLU_PARAMETRIC_TOLERANCE</constant>,
+            <constant>GLU_SAMPLING_METHOD</constant>,
+            <constant>GLU_U_STEP</constant>, or
+            <constant>GLU_V_STEP</constant>,
+            or a <parameter>value</parameter> of 
+            <constant>GLU_PATH_LENGTH</constant>,
+            <constant>GLU_PARAMETRIC_ERROR</constant>, 
+            <constant>GLU_DOMAIN_DISTANCE</constant> 
+            are only available if the GLU version is 1.1 or greater. They are not
+            valid parameters in GLU 1.0. 
+        </para>
+        <para>
+            <citerefentry><refentrytitle>gluGetString</refentrytitle></citerefentry> can
+            be used to determine the GLU version. 
+        </para>
+        <para>
+            <constant>GLU_NURBS_MODE</constant> is only available if the GLU version is 1.3 or
+            greater.
+        </para>
+        <para>
+            The <constant>GLU_OBJECT_PATH_LENGTH</constant> and <constant>GLU_OBJECT_PARAMETRIC_ERROR</constant> 
+            values for the <constant>GLU_SAMPLING_METHOD</constant> property are only available if 
+            the GLU version is 1.3 or greater.
+        </para>
+    </refsect1>
+    <refsect1 id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>gluGetNurbsProperty</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>gluGetString</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>gluLoadSamplingMatrices</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>gluNewNurbsRenderer</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>gluNurbsCallback</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <refsect1 id="Copyright"><title>Copyright</title>
+        <para>
+            Copyright <trademark class="copyright"></trademark> 1991-2006
+            Silicon Graphics, Inc. This document is licensed under the SGI
+            Free Software B License. For details, see
+            <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
+        </para>
+    </refsect1>
+</refentry>