DIRECTORY ImagerPath USING [PathProc], ImagerPixelMap USING [DeviceRectangle, Function, PixelMap], ImagerTransformation USING [Transformation]; ImagerScanConverter: CEDAR DEFINITIONS ~ BEGIN PathProc: TYPE ~ ImagerPath.PathProc; Transformation: TYPE ~ ImagerTransformation.Transformation; DeviceRectangle: TYPE ~ ImagerPixelMap.DeviceRectangle; PixelMap: TYPE ~ ImagerPixelMap.PixelMap; Function: TYPE ~ ImagerPixelMap.Function; DevicePath: TYPE ~ REF DevicePathRep; DevicePathRep: TYPE; CreatePath: PROC [path: PathProc, transformation: Transformation _ NIL, clipBox: DeviceRectangle, scratch: DevicePath _ NIL -- for re-use of storage ] RETURNS [DevicePath]; BoundingBox: PROC [devicePath: DevicePath] RETURNS [DeviceRectangle]; NumberOfRuns: PROC [devicePath: DevicePath] RETURNS [numberOfRuns: INT]; ConvertToRuns: PROC [devicePath: DevicePath, runProc: PROC [sMin, fMin: INTEGER, fSize: NAT], clipBox: DeviceRectangle, parityFill: BOOLEAN _ FALSE ]; ConvertToPixels: PROC [devicePath: DevicePath, pixelMap: PixelMap, value: CARDINAL _ 1, parityFill: BOOLEAN _ FALSE, function: Function _ [null, null] ]; ConvertToManhattanPolygon: PROC [devicePath: DevicePath, clipBox: DeviceRectangle, parityFill: BOOLEAN _ FALSE ] RETURNS [LIST OF DeviceRectangle]; END. lImagerScanConverter.mesa Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. Michael Plass, April 29, 1985 1:07:06 pm PDT Doug Wyatt, March 7, 1985 2:40:16 pm PST Not always as tight as possible, but should be pretty close. Guaranteed to be an upper bound, should be close to the actual. Satisfies assertion for an ImagerManhattan.Polygon. Κ­˜codešœ™Kšœ Οmœ7™BK™,K™(—K˜šΟk ˜ Kšœ žœ ˜Kšœžœ'˜;Kšœžœ˜,—K˜KšΠblœžœž ˜&šœž˜K˜Kšœ žœ˜%Kšœžœ'˜;Kšœžœ"˜7Kšœ žœ˜)šœ žœ˜)K˜—Kšœ žœžœ˜%šœžœ˜K˜—š Οn œžœ4žœ2žœΟcœžœ˜­K˜—š  œžœžœ˜EK™