NAME
	  fgluNurbsSurface - define the	shape of a NURBS surface


     FORTRAN SPECIFICATION
	  SUBROUTINE fgluNurbsSurface( CHARACTER*8 nurb,
				       INTEGER*4 sKnotCount,
				       CHARACTER*8 sKnots,
				       INTEGER*4 tKnotCount,
				       CHARACTER*8 tKnots,
				       INTEGER*4 sStride,
				       INTEGER*4 tStride,
				       CHARACTER*8 control,
				       INTEGER*4 sOrder,
				       INTEGER*4 tOrder,
				       INTEGER*4 type )


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

	  sKnotCount  Specifies	the number of knots in the parametric
		      u	direction.

	  sKnots      Specifies	an array of sKnotCount nondecreasing
		      knot values in the parametric u direction.

	  tKnotCount  Specifies	the number of knots in the parametric
		      v	direction.

	  tKnots      Specifies	an array of tKnotCount nondecreasing
		      knot values in the parametric v direction.

	  sStride     Specifies	the offset (as a number	of single-
		      precision	floating point values) between
		      successive control points	in the parametric u
		      direction	in control.

	  tStride     Specifies	the offset (in single-precision
		      floating-point values) between successive
		      control points in	the parametric v direction in
		      control.

	  control     Specifies	an array containing control points for
		      the NURBS	surface.  The offsets between
		      successive control points	in the parametric u
		      and v directions are given by sStride and
		      tStride.

	  sOrder      Specifies	the order of the NURBS surface in the
		      parametric u direction. The order	is one more
		      than the degree, hence a surface that is cubic
		      in u has a u order of 4.

	  tOrder      Specifies	the order of the NURBS surface in the
		      parametric v direction. The order	is one more
		      than the degree, hence a surface that is cubic
		      in v has a v order of 4.

	  type	      Specifies	type of	the surface. type can be any
		      of the valid two-dimensional evaluator types
		      (such as GL_MAP2_VERTEX_3	or GL_MAP2_COLOR_4).

     DESCRIPTION
	  Use fgluNurbsSurface within a	NURBS (Non-Uniform Rational
	  B-Spline) surface definition to describe the shape of	a
	  NURBS	surface	(before	any trimming). To mark the beginning
	  of a NURBS surface definition, use the fgluBeginSurface
	  command.  To mark the	end of a NURBS surface definition, use
	  the fgluEndSurface command. Call fgluNurbsSurface within a
	  NURBS	surface	definition only.

	  Positional, texture, and color coordinates are associated
	  with a surface by presenting each as a separate
	  fgluNurbsSurface between a fgluBeginSurface/fgluEndSurface
	  pair.	No more	than one call to fgluNurbsSurface for each of
	  color, position, and texture data can	be made	within a
	  single fgluBeginSurface/fgluEndSurface pair. Exactly one
	  call must be made to describe	the position of	the surface (a
	  type of GL_MAP2_VERTEX_3 or GL_MAP2_VERTEX_4).

	  A NURBS surface can be trimmed by using the commands
	  fgluNurbsCurve and fgluPwlCurve between calls	to
	  fgluBeginTrim	and fgluEndTrim.

	  Note that a fgluNurbsSurface with sKnotCount knots in	the u
	  direction and	tKnotCount knots in the	v direction with
	  orders sOrder	and tOrder must	have (sKnotCount - sOrder) x
	  (tKnotCount -	tOrder)	control	points.

     EXAMPLE
	  The following	commands render	a textured NURBS surface with
	  normals; the texture coordinates and normals are also	NURBS
	  surfaces:

	  gluBeginSurface(nobj);
	     gluNurbsSurface(nobj, ...,	GL_MAP2_TEXTURE_COORD_2);
	     gluNurbsSurface(nobj, ...,	GL_MAP2_NORMAL);
	     gluNurbsSurface(nobj, ...,	GL_MAP2_VERTEX_4);
	  gluEndSurface(nobj);


     SEE ALSO

	  fgluBeginSurface, fgluBeginTrim, fgluNewNurbsRenderer,
	  fgluNurbsCurve, fgluPwlCurve