<> <> <> DIRECTORY Imager ; IGScanConverter: CEDAR DEFINITIONS = BEGIN Cubic: TYPE = REF CubicRec; CubicRec: TYPE = RECORD [ xmin, ymin, ymax: INTEGER, -- in device units x0, y0, x1, y1, x2, y2, x3, y3: CARDINAL, <> ascending: BOOLEAN, openAt0: BOOLEAN, openAt3: BOOLEAN, outlineNumber: [0..8192) ]; DevicePath: TYPE = REF DevicePathRec; DevicePathRec: TYPE = RECORD [ length: NAT _ 0, numberOfOutlines: NAT _ 0, seq: REF DevicePathSeqRec ]; DevicePathSeqRec: TYPE = RECORD [ SEQUENCE maxLength: NAT OF Cubic ]; XValueFor: PROCEDURE [cubic: CubicRec, y: Imager.FIXED] RETURNS [INTEGER]; Allocate: PROCEDURE RETURNS [DevicePath]; Reset: PROCEDURE [devicePath: DevicePath]; Release: PROCEDURE [devicePath: DevicePath]; PushPath: PROCEDURE [ devicePath: DevicePath, path: Imager.Path, transformation: Imager.Transformation ]; PopPath: PROCEDURE [devicePath: DevicePath]; ScanConvert: PROCEDURE [devicePath: DevicePath, LineProc: PROC[xmin, xmax, y: INTEGER]]; END.