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  paramet-
                   ric u direction.

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

       tKnotCount  Specifies the number of knots in the  paramet-
                   ric 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 suc-
                   cessive control points  in  the  parametric  u
                   direction in control.

       tStride     Specifies   the  offset  (in  single-precision
                   floating-point values) between successive con-
                   trol  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

       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); gluEnd-
       Surface(nobj);



SEE ALSO

       gluBeginSurface,    gluBeginTrim,     gluNewNurbsRenderer,
       gluNurbsCurve, gluPwlCurve




                                                                1