gluNurbsProperty(3G)

gluNurbsProperty - set a NURBS property

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     gluNurbsProperty - set a NURBS property


C SPECIFICATION
     void gluNurbsProperty( GLUnurbs* nurb,
                            GLenum property,
                            GLfloat value )


PARAMETERS
     nurb      Specifies the NURBS object (created with gluNewNurbsRenderer).

     property  Specifies the property to be set. Valid values are
               GLU_SAMPLING_TOLERANCE, GLU_DISPLAY_MODE, GLU_CULLING,
               GLU_AUTO_LOAD_MATRIX, GLU_PARAMETRIC_TOLERANCE,
               GLU_SAMPLING_METHOD, GLU_U_STEP, GLU_V_STEP, or
               GLU_NURBS_MODE_EXT.

     value     Specifies the value of the indicated property.  It may be a
               numeric value, or one of GLU_OUTLINE_POLYGON, GLU_FILL,
               GLU_OUTLINE_PATCH, GL_TRUE, GL_FALSE, GLU_PATH_LENGTH,
               GLU_PARAMETRIC_ERROR, GLU_DOMAIN_DISTANCE,
               GLU_NURBS_RENDERER_EXT, or GLU_NURBS_TESSELLATOR_EXT.

DESCRIPTION
     gluNurbsProperty 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 property are as follows:

     GLU_NURBS_MODE_EXT
                    value should be set to be either GLU_NURBS_RENDERER_EXT or
                    GLU_NURBS_TESSELLATOR_EXT. When set to
                    GLU_NURBS_RENDERER_EXT, NURBS objects are tessellated into
                    openGL primitives and sent to the pipeline for rendering.
                    When set to GLU_NURBS_TESSELLATOR_EXT, NURBS objects are
                    tessellated into openGL primitives but the vertices,
                    normals, colors, and/or textures are retrieved back
                    through a callback interface (see gluNurbsCallback). This
                    allows the user to cache the tessellated results for
                    further processing.

     GLU_SAMPLING_METHOD
                    Specifies how a NURBS surface should be tessellated.
                    value may be one of GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR,
                    GLU_DOMAIN_DISTANCE, GLU_OBJECT_PATH_LENGTH_EXT, or
                    GLU_OBJECT_PARAMETRIC_ERROR_EXT.  When set to
                    GLU_PATH_LENGTH, 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 GLU_SAMPLING_TOLERANCE.
                    GLU_PARAMETRIC_ERROR specifies that the surface is
                    rendered in such a way that the value specified by
                    GLU_PARAMETRIC_TOLERANCE describes the maximum distance,
                    in pixels, between the tessellation polygons and the
                    surfaces they approximate.

                    GLU_DOMAIN_DISTANCE allows users to specify, in parametric
                    coordinates, how many sample points per unit length are
                    taken in u, v direction.

                    GLU_OBJECT_PATH_LENGTH_EXT  is similar to GLU_PATH_LENGTH
                    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 GLU_SAMPLING_TOLERANCE.

                    GLU_OBJECT_PARAMETRIC_ERROR_EXT is similar to
                    GLU_PARAMETRIC_ERROR except that it is view independent,
                    that is, the surface is rendered in such a way that the
                    value specified by GLU_PARAMETRIC_TOLERANCE describes the
                    maximum distance, in object space, between the
                    tessellation polygons and the surfaces they approximate.

                    The initial value of GLU_SAMPLING_METHOD is
                    GLU_PATH_LENGTH.

     GLU_SAMPLING_TOLERANCE
                    Specifies the maximum length, in pixels or in object space
                    length unit, to use when the sampling method is set to
                    GLU_PATH_LENGTH or GLU_OBJECT_PATH_LENGTH_EXT.  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.

     GLU_PARAMETRIC_TOLERANCE
                    Specifies the maximum distance, in pixels or in object
                    space length unit, to use when the sampling method is
                    GLU_PARAMETRIC_ERROR or GLU_OBJECT_PARAMETRIC_ERROR_EXT.
                    The initial value is 0.5.

     GLU_U_STEP     Specifies the number of sample points per unit length
                    taken along the u axis in parametric coordinates. It is
                    needed when GLU_SAMPLING_METHOD is set to
                    GLU_DOMAIN_DISTANCE.  The initial value is 100.

     GLU_V_STEP     Specifies the number of sample points per unit length
                    taken along the v axis in parametric coordinate. It is
                    needed when GLU_SAMPLING_METHOD is set to
                    GLU_DOMAIN_DISTANCE. The initial value is 100.

     GLU_DISPLAY_MODE
                    value can be set to GLU_OUTLINE_POLYGON, GLU_FILL, or
                    GLU_OUTLINE_PATCH.  When GLU_NURBS_MODE_EXT is set to be
                    GLU_NURBS_RENDERER_EXT, value defines how a NURBS surface
                    should be rendered.  When value is set to GLU_FILL, the
                    surface is rendered as a set of polygons. When value is
                    set to GLU_OUTLINE_POLYGON, the NURBS library draws only
                    the outlines of the polygons created by tessellation. When
                    value is set to GLU_OUTLINE_PATCH just the outlines of
                    patches and trim curves defined by the user are drawn.

                    When GLU_NURBS_MODE_EXT is set to be
                    GLU_NURBS_TESSELLATOR_EXT, value defines how a NURBS
                    surface should be tessellated.  When GLU_DISPLAY_MODE is
                    set to GLU_FILL or GLU_OUTLINE_POLY, the NURBS surface is
                    tessellated into openGL triangle primitives which can be
                    retrieved back  through callback functions. If
                    GLU_DISPLAY_MODE is set to GLU_OUTLINE_PATCH, only the
                    outlines of the patches and trim curves are generated as a
                    sequence of line strips which can be retrieved back
                    through callback functions.

                    The initial value is GLU_FILL.

     GLU_CULLING    value is a boolean value that, when set to GL_TRUE,
                    indicates that a NURBS curve should be discarded prior to
                    tessellation if its control points lie outside the current
                    viewport. The initial value is GL_FALSE.

     GLU_AUTO_LOAD_MATRIX
                    value is a boolean value. When set to GL_TRUE, 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.

                    If this mode is set to GL_FALSE, 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
                    gluLoadSamplingMatrices function.  This mode is initially
                    set to GL_TRUE.  Changing it from GL_TRUE to GL_FALSE does
                    not affect the sampling and culling matrices until
                    gluLoadSamplingMatrices is called.

NOTES
     If GLU_AUTO_LOAD_MATRIX is true, sampling and culling may be executed
     incorrectly if NURBS routines are compiled into a display list.
     A property of GLU_PARAMETRIC_TOLERANCE, GLU_SAMPLING_METHOD, GLU_U_STEP,
     or GLU_V_STEP, or a value of GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR,
     GLU_DOMAIN_DISTANCE are only available if the GLU version is 1.1 or
     greater. They are not valid parameters in GLU 1.0.

     gluGetString can be used to determine the GLU version.

SEE ALSO
     gluGetNurbsProperty, gluLoadSamplingMatrices, gluNewNurbsRenderer,
     gluGetString, gluNurbsCallback