<> <> <<>> DIRECTORY Rope USING [ROPE]; DitherAIS: DEFINITIONS = BEGIN Pixel: TYPE = RECORD [ red, green, blue:INTEGER, rgb:CARDINAL]; PixelBuf: TYPE = REF PixelBufRec; PixelBufRec: TYPE = RECORD [ data:SEQUENCE ix:CARDINAL OF Pixel]; UserMapProc: TYPE = PROC [r, g, b:INTEGER] RETURNS [palix:CARDINAL, re, ge, be:INTEGER]; <> <<>> UserUnmapProc: TYPE = PROC [palix:CARDINAL] RETURNS [r, g, b:INTEGER]; <> Stretch: PUBLIC PROCEDURE [redFn, greenFn, blueFn, rgbFn:Rope.ROPE, unMap:UserUnmapProc]; <> Squash: PUBLIC PROCEDURE [redFn, greenFn, blueFn, rgbFn:Rope.ROPE, map:UserMapProc]; <> <<>> SquashScan: PUBLIC PROCEDURE [this, next:PixelBuf, left,right:CARDINAL, map:UserMapProc]; <> END.