bgnsur(3G)

bgnsur, endsur - delimit a NURBS surface definition

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     bgnsur, endsur - delimit a NURBS surface definition

FORTRAN 77 SPECIFICATION
     subroutine bgnsur

     subroutine endsur

PARAMETERS
     none

DESCRIPTION
     Use bgnsur to mark the beginning of a NURBS (Non-Uniform Rational B-
     Spline) surface definition. After you call bgnsur, call the routines that
     define the surface and that provide the trimming information.  To mark
     the end of a NURBS surface definition, call endsur.

     Within a NURBS surface definition (between bgnsur and endsur), you may
     use only the following Graphics Library subroutines:  nurbss, bgntri,
     endtri, nurbsc, and pwlcur.  The NURBS surface definition must consist of
     exactly one call to nurbss to define the shape of the surface.  In
     addition, this call may be preceeded by calls to nurbss that specify how
     texture and color parameters vary across the surface.  The call(s) to
     nurbss may be followed by a list of one or more trimming loop definitions
     (to define the boundaries of the surface).  Each trimming loop definition
     consists of one call to bgntri, one or more calls to either pwlcur or
     nurbsc, and one call to endtri.

     The system renders a NURBS surface as a polygonal mesh, and calculates
     normal vectors at the corners of the polygons within the mesh. Therefore,
     your program should specify a lighting model if it uses NURBS surfaces.
     If your program uses no lighting model, all the interesting surface
     information is lost.  When using a lighting model, use lmdef and lmbind
     to define or modify materials and their properties.

EXAMPLE
     The following code fragment draws a NURBS surface trimmed by two closed
     loops.  The first closed loop is a single piecewise linear curve (see
     pwlcur), and the second closed loop consists of two NURBS curves (see
     nurbsc), joined end to end:

          call bgnsur
              call nurbss(. . .)
              call bgntri
                  call pwlcur(. . .)
              call endtri
              call bgntri
                  call nurbsc(. . .)
                  call nurbsc(. . .)
              call endtri
          call endsur
NOTE
     On Impact and Infinite Reality lmcolo cannot be called between bgnsur and
     endsur


SEE ALSO
     nurbss, bgntri, nurbsc, pwlcur, setnur, getnur