gluNurbsCurve
Prev | GLU | Next

## Name

gluNurbsCurve — define the shape of a NURBS curve

## C Specification

`void `gluNurbsCurve`` | `(` | `GLUnurbs* `nurb`, GLint `knotCount`, GLfloat *`knots`, GLint `stride`, GLfloat *`control`, GLint `order`, GLenum `type`);`

## Python Specification

``gluNurbsCurve`` | `(` | ``nurb`, `knots`[], `control`[], `type`) → `None``

## Parameters

`nurb`
  Specifies the NURBS object (created with `gluNewNurbsRenderer`).
`knotCount`
  Specifies the number of knots in `knots`. `knotCount` equals the number of control points plus the order.
`knots`
  Specifies an array of `knotCount` nondecreasing knot values.
`stride`
  Specifies the offset (as a number of single-precision floating-point values) between successive curve control points.
`control`
  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

Prev | Up | Next
gluNurbsCallbackDataEXT | Home | gluNurbsProperty