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.

       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,   or
                 GLU_NURBS_TESSELLATOR.


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 value   should   be   set   to   be  either
                      GLU_NURBS_RENDERER                       or
                      GLU_NURBS_TESSELLATOR.    When    set    to
                      GLU_NURBS_RENDERER, NURBS objects are  tes-
                      sellated into OpenGL primitives and sent to
                      the pipeline for  rendering.  When  set  to
                      GLU_NURBS_TESSELLATOR,  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.  The ini-
                      tial value is GLU_NURBS_RENDERER.

       GLU_SAMPLING_METHOD
                      Specifies how a  NURBS  surface  should  be
                      tessellated.    value   may   be   one   of
                      GLU_PATH_LENGTH,      GLU_PARAMETRIC_ERROR,
                      surfaces they approximate.

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

                      GLU_OBJECT_PATH_LENGTH    is   similar   to
                      GLU_PATH_LENGTH  except  that  it  is  view
                      independent, that is, the surface  is  ren-
                      dered so that the maximum length, in object
                      space, of edges of the  tessellation  poly-
                      gons  is  no greater than what is specified
                      by GLU_SAMPLING_TOLERANCE.

                      GLU_OBJECT_PARAMETRIC_ERROR is  similar  to
                      GLU_PARAMETRIC_ERROR except that it is view
                      independent, that is, the surface  is  ren-
                      dered  in  such a way that the value speci-
                      fied 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.
                      The NURBS code is conservative when render-
                      ing  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.   The  ini-
                      tial value is 0.5.

       GLU_U_STEP     Specifies  the  number of sample points per
                      unit length taken along the u axis in para-
                      metric   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
                      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   is   set   to   be
                      GLU_NURBS_TESSELLATOR, value defines how  a
                      NURBS  surface should be tessellated.  When
                      GLU_DISPLAY_MODE  is  set  to  GLU_FILL  or
                      GLU_OUTLINE_POLYGON,  the  NURBS surface is
                      tessellated into OpenGL triangle primitives
                      which  can be retrieved back  through call-
                      back 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  cur-
                      rent   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 pro-
                      jection 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 view-
                      port.

                      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 func-
                      tion.   This  mode  is  initially  set   to
                      GL_TRUE.    Changing  it  from  GL_TRUE  to
                      GL_FALSE does not affect the  sampling  and

       gluGetString can be used to determine the GLU version.

       GLU_NURBS_MODE  is only availble if the GLU version is 1.3
       or greater.

       The GLU_OBJECT_PATH_LENGTH and GLU_OBJECT_PARAMETRIC_ERROR
       values  for  the  GLU_SAMPLING_METHOD  property  are  only
       available if the GLU version is 1.3 or greater.


SEE ALSO

       gluGetNurbsProperty,              gluLoadSamplingMatrices,
       gluNewNurbsRenderer, gluGetString, gluNurbsCallback



                                                                1