Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GLUNURBSSURFACE()					     GLUNURBSSURFACE()

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 )

       delim $$

PARAMETERS
       nurb	   Specifies  the  NURBS  object (created with gluNewNurbsRen-
		   derer).

       sKnotCount  Specifies the number	of knots in the	 parametric  u	direc-
		   tion.

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

       tKnotCount  Specifies the number	of knots in the	 parametric  v	direc-
		   tion.

       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 gluNurbsSurface within a NURBS (Non-Uniform Rational	B-Spline) sur-
       face 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 defini-
       tion, use the gluEndSurface  command.  Call  gluNurbsSurface  within  a
       NURBS surface definition	only.

       Positional,  texture,  and color	coordinates are	associated with	a sur-
       face by presenting each as a separate gluNurbsSurface between a	gluBe-
       ginSurface/gluEndSurface	pair. No more than one call to gluNurbsSurface
       for each	of color, position, and	texture	data can be made within	a sin-
       gle  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) $times$ (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

							     GLUNURBSSURFACE()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gluNurbsSurface&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>

home | help