fgluNurbsSurface(3G)

fgluNurbsSurface - define the shape of a NURBS surface

As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.15.

NAME
     fgluNurbsSurface - define the shape of a NURBS surface


FORTRAN SPECIFICATION
     SUBROUTINE fgluNurbsSurface( CHARACTER*8 nurb,
                                  INTEGER*4 sKnotCount,
                                  CHARACTER*8 sKnots,
                                  INTEGER*4 tKnotCount,
                                  CHARACTER*8 tKnots,
                                  INTEGER*4 sStride,
                                  INTEGER*4 tStride,
                                  CHARACTER*8 control,
                                  INTEGER*4 sOrder,
                                  INTEGER*4 tOrder,
                                  INTEGER*4 type )


PARAMETERS
     nurb        Specifies the NURBS object (created with
                 fgluNewNurbsRenderer).

     sKnotCount  Specifies the number of knots in the parametric u direction.

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

     tKnotCount  Specifies the number of knots in the parametric 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 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 fgluNurbsSurface within a NURBS (Non-Uniform Rational B-Spline)
     surface definition to describe the shape of a NURBS surface (before any
     trimming). To mark the beginning of a NURBS surface definition, use the
     fgluBeginSurface command.  To mark the end of a NURBS surface definition,
     use the fgluEndSurface command. Call fgluNurbsSurface within a NURBS
     surface definition only.

     Positional, texture, and color coordinates are associated with a surface
     by presenting each as a separate fgluNurbsSurface between a
     fgluBeginSurface/fgluEndSurface pair. No more than one call to
     fgluNurbsSurface for each of color, position, and texture data can be
     made within a single fgluBeginSurface/fgluEndSurface 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 fgluNurbsCurve and
     fgluPwlCurve between calls to fgluBeginTrim and fgluEndTrim.

     Note that a fgluNurbsSurface 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);
          gluEndSurface(nobj);



SEE ALSO
     fgluBeginSurface, fgluBeginTrim, fgluNewNurbsRenderer, fgluNurbsCurve,
     fgluPwlCurve