[ Previous | Next | Contents | Glossary | Home | Search ]
GL3.2 for AIX: Graphics Library (GL) Technical Reference

bgnsurface or endsurface Subroutine

Purpose

Delimit a NURBS surface definition.

Libraries

Graphics Library

C (libgl.a)

FORTRAN (libfgl.a)

C Syntax

void bgnsurface( )
void endsurface( )

FORTRAN Syntax

SUBROUTINE BGNSUR
SUBROUTINE ENDSUR

Description

The bgnsurface and endsurface subroutines mark the beginning and end, respectively, of a Non-Uniform Rational B-Spline (NURBS) surface definition. Between calls to these two subroutines, only those subroutines that define the surface and provide the trimming information can be invoked. They are:

The NURBS surface definition must consist of exactly one call to the nurbssurface subroutine (to define the shape of the surface), followed by a list of zero or more trimming loop definitions (to define the boundaries of the surface). Each trimming loop definition consists of one call to the bgntrim subroutine, one or more calls to the pwlcurve or nurbscurve subroutines, and one call to the endtrim subroutine.

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; otherwise much surface information is lost. When using a lighting model, define or modify materials and their properties with the lmdef and lmbind subroutines.

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

bgnsurface(...); 
    nurbssurface(...);
    bgntrim();
        pwlcurve(...); 
    endtrim();
    bgntrim();
        nurbscurve(...);
        nurbscurve(...); 
    endtrim(); 
endsurface();

Implementation Specifics

This subroutine is part of GL in the AIXwindows Environment/6000 Version 1, Release 2 with AIXwindows/3D Feature.

Files

/usr/include/gl/gl.h Contains C language constant and variable type definitions for GL.
/usr/include/gl/fgl.h Contains FORTRAN constant and variable type definitions for GL.

Related Information

Marking the beginning and end of a NURBS surface trimming loop with the bgntrim and endtrim subroutines.

Returning the current value of a trimmed NURBS surface display property with the getnurbsproperty subroutine.

Controlling the shape of a NURBS trimming curve with the nurbscurve subroutine.

Controlling the shape of a NURBS surface with the nurbssurface subroutine.

Describing a piecewise linear trimming curve for NURBS surfaces with the pwlcurve subroutine.

Setting a property for the display of trimmed NURBS with the setnurbsproperty subroutine.

AIX Graphics Library Overview, Creating Lighting Effects, and Drawing NURBS Curves and Surfaces.


[ Previous | Next | Contents | Glossary | Home | Search ]