-- File CIFVersatecTypeDefs.mesa
-- Written by Martin Newell, June 1980
-- Last updated: April 28, 1981 2:01 PM

CIFVersatecTypeDefs: DEFINITIONS =

BEGIN

Edge: TYPE = POINTER TO EdgeRecord;
EdgeRecord: TYPE = RECORD [
next: Edge,
xstart: REAL,
ystart: REAL,
yend: REAL,
lastouty: REAL,--y value where edge of deferred trapezoid was last output
mate: Edge,--other edge making up a deferred trapezoid
up: BOOLEAN,--TRUE if edge defined in increasing y
flagout: BOOLEAN,--TRUE if edge will need to be output at ycurr
vert: BOOLEAN,--TRUE if edge vertical - used to SELECT variant
var:SELECT COMPUTED EdgeAngle FROM --use COMPUTED to save the whole WORD that Mesa
--otherwise allocates for the tag
oblique => [
xend: REAL,
slope: REAL],
vertical => NULL,
ENDCASE
];

EdgeAngle: TYPE = {oblique,vertical};
EdgeType: TYPE = {acontinuingUp, acontinuingDown, aterminatingUp,
aterminatingDown, estartingUp, estartingDown, null};

END.