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