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".                              #
#                                                                             #
###############################################################################

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



NAME
        FB_CLASS__EXTENT_2DX, FB_CLASS__EXTENT_3DX, FB_CLASS__EXTENT_4DX, -
        extent classes

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

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

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

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

DESCRIPTION
        The extent classes are used for bounding box checking or determining
        if the extent of an object is hidden, visible, or intersects the
        clipping pyramid.  The extent classes are only useful with the matrix
        classes FB_CLASS__MATRIX_MV4X3_CLIP_DC4X3 and
        FB_CLASS__MATRIX_MV4X3_CLIP_DC4X4.  agi does not check at run time to
        see if the matrix class has been initialized to one of these classes.

        The class FB_CLASS__EXTENT_2DX is for determining the extent of a 2D
        object.  The legal coordinate members for this class are:
                FB_MEMBER__X
                FB_MEMBER__Y

        The class FB_CLASS__EXTENT_3DX is for determining the extent of a 3D
        object.  The legal coordinate members for this class are:
                FB_MEMBER__X
                FB_MEMBER__Y
                FB_MEMBER__Z

        The class FB_CLASS__EXTENT_4DX is for determining the extent of a 4D
        object.  The legal coordinate members for this class are:
                FB_MEMBER__X
                FB_MEMBER__Y
                FB_MEMBER__Z
                FB_MEMBER__W

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 horizontal location of the point of the object
                currently being defined before transformation.
        FB_MEMBER__Y__INTEGER
        FB_MEMBER__Y__FIXED
        FB_MEMBER__Y__FLOAT
                Y is the vertical location of the point of the object
                currently being defined before transformation.
        FB_MEMBER__Z__INTEGER
        FB_MEMBER__Z__FIXED
        FB_MEMBER__Z__FLOAT
                Z is the depth of the point of the object currently being
                defined before transformation.
        FB_MEMBER__W__INTEGER
        FB_MEMBER__W__FIXED
        FB_MEMBER__W__FLOAT
                W is the homogeneous value of the point of the object
                currently being defined before transformation.

        The following public members can be accessed by using the routine
        fbget(3G):

        FB_MEMBER__HIDDEN__LOGICAL
                If HIDDEN is true, the points describing the extent of the
                current object which were stored into the frame buffer since
                the last RESET are all hidden.
        FB_MEMBER__INTERSECT__LOGICAL
                If INTERSECT is true, the points describing the extent of the
                current object which were stored into the frame buffer since
                the last RESET intersect one or more clip planes.
        FB_MEMBER__VISIBLE__LOGICAL
                If VISIBLE is true, the points describing the extent of the
                current object which were stored into the frame buffer since
                the last RESET are all visible.

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 is transformed, and the
                current state of the extent is updated.
        FB_FUNCTION__LOAD
                The LOAD function loads the current extent status in the frame
                buffer into the current members (HIDDEN, INTERSECT, VISIBLE).
        FB_FUNCTION__RESET
                The RESET function resets the current extent status in the
                frame buffer.  This should be done before the extents of the
                object are stored into the frame buffer.

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

PERFORMANCE



AGI Release 1.8         Last change: 25 December 1991

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