###############################################################################
# #
# 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". #
# #
###############################################################################
TRIANGLE(3GC) AVIATOR GRAPHICS INTERFACE CLASSES TRIANGLE(3GC)
NAME
FB_CLASS__TRIANGLE_2DS_OVERLAPPING,
FB_CLASS__TRIANGLE_2DS_NONOVERLAPPING,
FB_CLASS__TRIANGLE_2DX_OVERLAPPING,
FB_CLASS__TRIANGLE_2DX_NONOVERLAPPING,
FB_CLASS__TRIANGLE_3DX_OVERLAPPING,
FB_CLASS__TRIANGLE_3DX_NONOVERLAPPING,
FB_CLASS__TRIANGLE_4DX_OVERLAPPING,
FB_CLASS__TRIANGLE_4DX_NONOVERLAPPING - triangle classes
SYNOPSIS
#include <agi.h>
register Fbuffer fbp;
fbstart(fbp, FB_CLASS__TRIANGLE_2DS_OVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_2DS_NONOVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_2DX_OVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_2DX_NONOVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_3DX_OVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_3DX_NONOVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_4DX_OVERLAPPING) {
} fbend(fbp);
fbstart(fbp, FB_CLASS__TRIANGLE_4DX_NONOVERLAPPING) {
} fbend(fbp);
DESCRIPTION
The classes FB_CLASS__TRIANGLE_2DS_OVERLAPPING and
FB_CLASS__TRIANGLE_2DS_NONOVERLAPPING are used for rendering triangles
and chained triangles in two dimensional screen coordinates with no
matrix transform applied. Legal members for this class are:
X, Y
The classes FB_CLASS__TRIANGLE_2DX_OVERLAPPING and
FB_CLASS__TRIANGLE_2DX_NONOVERLAPPING are used for rendering 2
dimensional triangles and chained triangles with the current matrix
transform applied. Legal members for this class are:
X, Y
The classes FB_CLASS__TRIANGLE_3DX_OVERLAPPING and
FB_CLASS__TRIANGLE_3DX_NONOVERLAPPING are used for rendering 3
dimensional triangles and chained triangles with the current matrix
transform applied. Legal members for this class are:
X, Y, Z
The classes FB_CLASS__TRIANGLE_4DX_OVERLAPPING and
FB_CLASS__TRIANGLE_4DX_NONOVERLAPPING are used for rendering 4
dimensional triangles and chained triangles with the current matrix
transform applied. Legal members for this class are:
X, Y, Z, W
Overlapping triangles have the characteristic that two adjacent
triangles using the same two points will overlap by exactly a line.
If two adjacent triangles are rendered with the exclusive-OR raster
operation, a line connecting the two points in common will be the
original image.
Nonoverlapping triangles have the characteristic that two adjacent
triangles using the same two points will have no pixels in common.
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 triangle
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 triangle
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 triangle
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 triangle
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 triangle.
FB_FUNCTION__RENDER
The RENDER function causes the frame buffer to render the
triangle.
SEE ALSO
fbcall(3G), fbend(3G), fbget(3G), fbput(3G), fbstart(3G)
PERFORMANCE
INTEGER is the fastest format for TRIANGLE_2DS classes.
AGI Release 1.8 Last change: 25 December 1991