gluNurbsCurve.3gl








Name


  gluNurbsCurve	- define the shape of a	NURBS curve





C Specification


  void gluNurbsCurve( GLUnurbsObj *nobj,

		      GLint nknots,

		      GLfloat *knot,

		      GLint stride,

		      GLfloat *ctlarray,

		      GLint order,

		      GLenum type )





Parameters




  nobj	    Specifies the NURBS	object (created	with gluNewNurbsRenderer).



  nknots    Specifies the number of knots in knot.  nknots equals the number

	    of control points plus the order.



  knot	    Specifies an array of nknots nondecreasing knot values.



  stride    Specifies the offset (as a number of single-precision floating-

	    point values) between successive curve control points.



  ctlarray  Specifies a	pointer	to an array of control points.	The

	    coordinates	must agree with	type, specified	below.



  order	    Specifies the order	of the NURBS curve.  order equals degree + 1,

	    hence a cubic curve	has an order of	4.



  type	    Specifies the type of the curve.  If this curve is defined within

	    a gluBeginCurve/gluEndCurve	pair, then the type can	be any of the

	    valid one-dimensional evaluator types (such	as GL_MAP1_VERTEX_3

	    or GL_MAP1_COLOR_4).  Between a gluBeginTrim/gluEndTrim pair, the

	    only valid types are GLU_MAP1_TRIM_2 and GLU_MAP1_TRIM_3.





Description


  Use gluNurbsCurve to describe	a NURBS	curve.



  When gluNurbsCurve appears between a gluBeginCurve/gluEndCurve pair, it is

  used to describe a curve to be rendered.  Positional,	texture, and color

  coordinates are associated by	presenting each	as a separate gluNurbsCurve

  between a gluBeginCurve/gluEndCurve pair.  No	more than one call to

  gluNurbsCurve	for each of color, position, and texture data can be made

  within a single gluBeginCurve/gluEndCurve pair.  Exactly one call must be

  made to describe the position	of the curve (a	type of	GL_MAP1_VERTEX_3 or

  GL_MAP1_VERTEX_4).



  When gluNurbsCurve appears between a gluBeginTrim/gluEndTrim pair, it	is

  used to describe a trimming curve on a NURBS surface.	 If type is

  GLU_MAP1_TRIM_2, then	it describes a curve in	two-dimensional	(u and v)

  parameter space.  If it is GLU_MAP1_TRIM_3, then it describes	a curve	in

  two-dimensional homogeneous (u, v, and w) parameter space.  See the

  gluBeginTrim reference page for more discussion about	trimming curves.





Example


  The following	commands render	a textured NURBS curve with normals:



  gluBeginCurve(nobj);

     gluNurbsCurve(nobj, ..., GL_MAP1_TEXTURE_COORD_2);

     gluNurbsCurve(nobj, ..., GL_MAP1_NORMAL);

     gluNurbsCurve(nobj, ..., GL_MAP1_VERTEX_4); gluEndCurve(nobj);





Notes


  To define trim curves	which stitch well use gluPwlCurve.







See Also


  gluBeginCurve, gluBeginTrim, gluNewNurbsRenderer, gluPwlCurve








Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV