NAME
	  fgluNurbsProperty - set a NURBS property


     FORTRAN SPECIFICATION
	  SUBROUTINE fgluNurbsProperty(	CHARACTER*8 nurb,
					INTEGER*4 property,
					REAL*4 value )


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

	  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
	  fgluNurbsProperty 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	fgluNurbsCallback). 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 fgluLoadSamplingMatrices 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
			 fgluLoadSamplingMatrices 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.

	  fgluGetString	can be used to determine the GLU version.

     SEE ALSO
	  fgluGetNurbsProperty,	fgluLoadSamplingMatrices,
	  fgluNewNurbsRenderer,	fgluGetString, fgluNurbsCallback