-- File CIFRamtekUtilsDefs.mesa
-- Written by Rich Pasco, September, 1981
-- Last updated: December 6, 1981 5:58 PM

DIRECTORY

CIFRamtekTypeDefs: FROM "CIFRamtekTypeDefs" USING [Edge];

CIFRamtekUtilsDefs: DEFINITIONS =

BEGIN OPEN CIFRamtekTypeDefs;

RStripeWidth: CARDINAL = 918; --***pixels per scanline

RamtekNextStripe: PUBLIC PROCEDURE;

OutputStripesUntil: PUBLIC PROCEDURE[y: REAL];

VersatecMakeEdge: PUBLIC PROCEDURE [xstart,ystart,xend,yend: REAL, up: BOOLEAN]
RETURNS[edge: Edge];

RamtekAllocateStripes: PUBLIC PROCEDURE;

RamtekOutStripe: PUBLIC PROCEDURE;

RamtekClearStripe: PUBLIC PROCEDURE[overlap: BOOLEAN];
--If overlap then copy line number VStripeHeight to line number 0 and
-- clear lines 1..VStripeHeight inclusive, otherwise
-- clear lines 0..VStripeHeight inclusive

LoadStipple: PUBLIC PROCEDURE[layer:CARDINAL, v0,v1,v2,v3: CARDINAL];

AllocateVerticalEdge: PUBLIC PROCEDURE RETURNS[Edge];

AllocateObliqueEdge: PUBLIC PROCEDURE RETURNS[Edge];

FreeEdge: PUBLIC PROCEDURE[edge: Edge];

EdgeLessThan: PUBLIC PROCEDURE[e1,e2: Edge, y: REAL] RETURNS[BOOLEAN];
--orders up/down within slope within x

XatY: PUBLIC PROCEDURE[edge: Edge, y: REAL] RETURNS[x: REAL];

InitRamtekOut: PUBLIC PROCEDURE[fileName: STRING, height: CARDINAL];

FinishRamtekOut: PUBLIC PROCEDURE[y: REAL];

HorColorLine: PUBLIC PROCEDURE[xleft,xright,y: REAL, layer: CARDINAL];

DrawTrap: PUBLIC PROCEDURE[left: Edge, ystart: REAL, right: Edge, yend: REAL, layer: CARDINAL];


END.