manpagez: man pages & more
man gluNurbsProperty(3)
Home | html | info | man
gluNurbsProperty(3)                                      gluNurbsProperty(3)




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.

       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 tessellated 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, col-
                      ors, and/or textures are retrieved back through a  call-
                      back  interface  (see gluNurbsCallback). This allows the
                      user to cache the tessellated results for  further  pro-
                      cessing.  The initial 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,               GLU_DOMAIN_DISTANCE,
                      GLU_OBJECT_PATH_LENGTH, or  GLU_OBJECT_PARAMETRIC_ERROR.
                      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 speci-
                      fied by GLU_SAMPLING_TOLERANCE.

                      GLU_PARAMETRIC_ERROR specifies that the surface is  ren-
                      dered  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 paramet-
                      ric  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 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      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  tes-
                      sellation 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 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.
                      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  is  set to be
                      GLU_NURBS_RENDERER, 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 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 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 ini-
                      tially  set  to  GL_TRUE.   Changing  it from GL_TRUE to
                      GL_FALSE does not affect the sampling and culling matri-
                      ces 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.

       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(3), gluLoadSamplingMatrices(3),
       gluNewNurbsRenderer(3), gluGetString(3), gluNurbsCallback(3)



                                                          gluNurbsProperty(3)

Mac OS X 10.6 - Generated Thu Sep 17 20:20:34 CDT 2009
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.