-- File CIFDrcNewListDefs.mesa
-- Written by Dan Fitzpatrick and Martin Newell, September 1980
-- Last updated: March 24, 1981 2:55 PM

-- CIF Drc List Routines

DIRECTORY

CIFDrcUtilsDefs: FROM "CIFDrcUtilsDefs" USING [Trapezoid],
IntervalsDefs: FROM "IntervalsDefs" USING [GetHandleRecord];

CIFDrcNewListDefs: DEFINITIONS =

BEGIN

OPEN CIFDrcUtilsDefs, IntervalsDefs;

InitList
: PUBLIC PROCEDURE[left,right: LONG INTEGER];

InsertTrap:PUBLIC PROCEDURE [trap:Trapezoid, layer:CARDINAL, swath:SwathType];

RemoveTrap:PUBLIC PROCEDURE [trap:Trapezoid, layer:CARDINAL, swath:SwathType];

EmptyList:PUBLIC PROCEDURE [layer:CARDINAL];

StepSwaths
:PUBLIC PROCEDURE [];

GenSwath
: PUBLIC PROCEDURE [layer:CARDINAL, swath:SwathType,list:POINTER TO ListDescriptor] RETURNS[trap:Trapezoid];

GetSwath
: PUBLIC PROCEDURE [list:POINTER TO ListDescriptor] RETURNS[trap:Trapezoid];

GenLocal
: PUBLIC PROCEDURE [minx,maxx:LONG INTEGER, layer:CARDINAL, list:POINTER TO ListDescriptor] RETURNS[trap:Trapezoid];

GetLocal
: PUBLIC PROCEDURE [list:POINTER TO ListDescriptor] RETURNS[trap:Trapezoid];

SwathType:TYPE = {bottom, middle, top};

ListDescriptor:TYPE = RECORD [
layer: CARDINAL,
min,max:LONG INTEGER,
swath: SwathType,
handle: GetHandleRecord
];


END.