gluNurbsProperty

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
GLUNURBSPROPERTY(3G)					 GLUNURBSPROPERTY(3G)



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 ren-
       dered. 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	 dis-
		      tance, in pixels, between the tessellation polygons and
		      the surfaces they approximate.

		      GLU_DOMAIN_DISTANCE allows users to specify,  in	para-
		      metric  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 sur-
		      face 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  indepen-
		      dent,  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.	  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  tessella-
		      tion.  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  tessel-
		      lated.   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 call-
		      back 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	 mod-
		      elview  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.

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



							 GLUNURBSPROPERTY(3G)