gluNurbsProperty.3gl




Name

  gluNurbsProperty - set a NURBS property


C Specification

  void gluNurbsProperty( GLUnurbsObj *nobj,
			 GLenum	property,
			 GLfloat value )


Parameters


  nobj	    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, or	GLU_V_STEP.

  value	    Specifies the value	of the indicated property.  It may be a
	    numeric value, or one of GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR,
	    or GLU_DOMAIN_DISTANCE.



Description

  gluNurbsProperty is used to control properties stored	in a NURBS object.
  These	properties affect the way that a NURBS curve is	rendered.  The legal
  values for property are as follows:


  GLU_SAMPLING_METHOD	   specifies how a NURBS surface should	be
			   tessellated.	value may be set to one	of
			   GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR, or
			   GLU_DOMAIN_DISTANCE.	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. The
			   default value of GLU_SAMPLING_METHOD	is
			   GLU_PATH_LENGTH.


  GLU_SAMPLING_TOLERANCE   specifies the maximum length, in pixels to use
			   when	the sampling method is set to
			   GLU_PATH_LENGTH. The	NURBS code is conservative
			   when	rendering a curve or surface, so the actual
			   length can be somewhat shorter. The default value
			   is 50.0 pixels.


  GLU_PARAMETRIC_TOLERANCE specifies the maximum distance, in pixels, to use
			   when	the sampling method is set to
			   GLU_PARAMETRIC_ERROR.  The default value for
			   GLU_PARAMETRIC_TOLERANCE 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 default 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 default value
			   is 100.


  GLU_DISPLAY_MODE	   value defines how a NURBS surface should be
			   rendered.  value can	be set to GLU_FILL,
			   GLU_OUTLINE_POLYGON,	or GLU_OUTLINE_PATCH.  When
			   set to GLU_FILL, the	surface	is rendered as a set
			   of polygons.	 GLU_OUTLINE_POLYGON instructs the
			   NURBS library to draw only the outlines of the
			   polygons created by tessellation.
			   GLU_OUTLINE_PATCH causes just the outlines of
			   patches and trim curves defined by the user to be
			   drawn.  The default 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
			   default is GL_FALSE (because	a NURBS	curve cannot
			   fall	entirely within	the convex hull	of its
			   control points).


  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
			   OpenGL server to compute sampling and culling
			   matrices for	each NURBS curve that is rendered.
			   Sampling and	culling	matrices are required to
			   determine the tesselation of	a NURBS	surface	into
			   line	segments or polygons and to cull a NURBS
			   surface if it lies outside of the viewport.	If
			   this	mode is	set to GL_FALSE, then the user 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.  The default for this mode	is GL_TRUE.
			   Changing this mode from GL_TRUE to GL_FALSE does
			   not affect the sampling and culling matrices	until
			   gluLoadSamplingMatrices is called.

Notes

  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 will only	be supported in	GLU version number 1.1.	They
  are not valid	parameters in GLU 1.0.

  gluGetString can be used to determine	the GLU	version.


See Also

  gluGetNurbsProperty, gluLoadSamplingMatrices,	gluNewNurbsRenderer,
  gluGetString.




Introduction | Alphabetic | Specification

Last Edited: Thu Mar 16, 1995

AFV