glunurbssurface - Man Page






gluNurbsSurface(3G)	       OpenGL Reference		   gluNurbsSurface(3G)



NAME
     gluNurbsSurface - define the shape	of a NURBS surface


C SPECIFICATION
     void gluNurbsSurface( GLUnurbs* nurb,
			   GLint sKnotCount,
			   GLfloat* sKnots,
			   GLint tKnotCount,
			   GLfloat* tKnots,
			   GLint sStride,
			   GLint tStride,
			   GLfloat* control,
			   GLint sOrder,
			   GLint tOrder,
			   GLenum type )


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

     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.



									Page 1






gluNurbsSurface(3G)	       OpenGL Reference		   gluNurbsSurface(3G)



     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 gluNurbsSurface 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
     gluBeginSurface command.  To mark the end of a NURBS surface definition,
     use the gluEndSurface command.  Call gluNurbsSurface within a NURBS
     surface definition	only.

     Positional, texture, and color coordinates	are associated with a surface
     by	presenting each	as a separate gluNurbsSurface between a
     gluBeginSurface/gluEndSurface pair.  No more than one call	to
     gluNurbsSurface for each of color,	position, and texture data can be made
     within a single gluBeginSurface/gluEndSurface 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 gluNurbsCurve	and
     gluPwlCurve between calls to gluBeginTrim and gluEndTrim.

     Note that a gluNurbsSurface 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
     gluBeginSurface, gluBeginTrim, gluNewNurbsRenderer, gluNurbsCurve,
     gluPwlCurve










									Page 2