Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (3GC) — Aviator 1.8

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fbcall(3G)

fbend(3G)

fbget(3G)

fbput(3G)

fbstart(3G)

###############################################################################
#                                                                             #
#  Copyright © 1989-1991 by Artificial Horizons®, Inc.  All rights reserved.  #
#                                                                             #
#      This material  constitutes  the trade  secrets  and confidential,      #
#      proprietary information of Bruce Factor and Curtis Priem,  and is      #
#      under license  to Artificial Horizons, Inc.   The material is not      #
#      to be disclosed,  reproduced,  copied,  or used in any manner not      #
#      permitted under license from Artificial Horizons, Inc.   For more      #
#      information email "ahi-interest@ahi.com".                              #
#                                                                             #
###############################################################################

QUADRILATERAL(3GC)    AVIATOR GRAPHICS INTERFACE CLASSES     QUADRILATERAL(3GC)



NAME
        FB_CLASS__QUADRILATERAL_2DS_OVERLAPPING,
        FB_CLASS__QUADRILATERAL_2DS_NONOVERLAPPING,
        FB_CLASS__QUADRILATERAL_2DX_OVERLAPPING,
        FB_CLASS__QUADRILATERAL_2DX_NONOVERLAPPING,
        FB_CLASS__QUADRILATERAL_3DX_OVERLAPPING,
        FB_CLASS__QUADRILATERAL_3DX_NONOVERLAPPING,
        FB_CLASS__QUADRILATERAL_4DX_OVERLAPPING,
        FB_CLASS__QUADRILATERAL_4DX_NONOVERLAPPING - quadrilateral classes

SYNOPSIS
        #include <agi.h>
        register Fbuffer fbp;

        fbstart(fbp, FB_CLASS__QUADRILATERAL_2DS_OVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_2DS_NONOVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_2DX_OVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_2DX_NONOVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_3DX_OVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_3DX_NONOVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_4DX_OVERLAPPING)  {
        }  fbend(fbp);

        fbstart(fbp, FB_CLASS__QUADRILATERAL_4DX_NONOVERLAPPING)  {
        }  fbend(fbp);

DESCRIPTION
        The classes FB_CLASS__QUADRILATERAL_2DS_OVERLAPPING and
        FB_CLASS__QUADRILATERAL_2DS_NONOVERLAPPING are used for rendering
        quadrilaterals and quadrilateral meshes in two dimensional screen
        coordinates with no matrix transform applied.  Legal members for these
        classes are:
                X, Y

        The classes FB_CLASS__QUADRILATERAL_2DX_OVERLAPPING and
        FB_CLASS__QUADRILATERAL_2DX_NONOVERLAPPING are used for rendering 2
        dimensional quadrilaterals and quadrilateral meshes in with the
        current matrix transform applied.  Legal members for these classes
        are:
                X, Y

        The classes FB_CLASS__QUADRILATERAL_3DX_OVERLAPPING and
        FB_CLASS__QUADRILATERAL_3DX_NONOVERLAPPING are used for rendering 3
        dimensional quadrilaterals and quadrilateral meshes in with the
        current matrix transform applied.  Legal members for these classes
        are:
                X, Y, Z

        The classes FB_CLASS__QUADRILATERAL_4DX_OVERLAPPING and
        FB_CLASS__QUADRILATERAL_4DX_NONOVERLAPPING are used for rendering 4
        dimensional quadrilaterals and quadrilateral meshes in with the
        current matrix transform applied.  Legal members for these classes
        are:
                X, Y, Z, W

        Overlapping quadrilaterals have the characteristic that two adjacent
        quadrilaterals using the same two points will overlap by exactly a
        line.  If two adjacent quadrilaterals are rendered with the
        exclusive-OR raster operation, a line connecting the two points in
        common will be the original image.

        Nonoverlapping quadrilaterals have the characteristic that two
        adjacent quadrilaterals using the same two points will have no pixels
        in common.

        Drawing chained quadrilaterals are drawn by storing four points for
        the first quadrilateral and then rendering.  The following
        quadrilaterals are drawn by loading two additional points and then
        rendering.

MEMBERS
        The following public members can be accessed by using routines
        fbput(3G) and fbget(3G).  These 32 bit numbers can be signed integer,
        signed 16.16 fixed point, or IEEE single precision floating point
        format.  The coordinate (0,0) is the upper left corner of the paint
        canvas, or the upper left corner of the frame buffer when running
        without a windowing system.

        FB_MEMBER__X__INTEGER
        FB_MEMBER__X__FIXED
        FB_MEMBER__X__FLOAT
                X is the x component of the end point of the quadrilateral
                currently being defined.
        FB_MEMBER__Y__INTEGER
        FB_MEMBER__Y__FIXED
        FB_MEMBER__Y__FLOAT
                Y is the y component of the end point of the quadrilateral
                currently being defined.
        FB_MEMBER__Z__INTEGER
        FB_MEMBER__Z__FIXED
        FB_MEMBER__Z__FLOAT
                Z is the z component of the end point of the quadrilateral
                currently being defined.
        FB_MEMBER__W__INTEGER
        FB_MEMBER__W__FIXED
        FB_MEMBER__W__FLOAT
                W is the w component of the end point of the quadrilateral
                currently being defined.

FUNCTIONS
        The following public functions can be called by using the fbcall(3G)
        routine:

        FB_FUNCTION__STORE_INCREMENT
                The STORE function stores the current point (X, Y, Z, and W)
                into the frame buffer.  The point reference is then
                incremented to reference the next point on the quadrilateral.
        FB_FUNCTION__RENDER
                The RENDER function causes the frame buffer to render the
                quadrilateral.

SEE ALSO
        fbcall(3G), fbend(3G), fbget(3G), fbput(3G), fbstart(3G)

PERFORMANCE
        INTEGER is the fastest format for the QUADRILATERAL_2DS classes.



AGI Release 1.8         Last change: 25 December 1991

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026