DIRECTORY ImagerBasic, ImagerManhattan, ImagerPixelMaps, ImagerScanConverter ; ImagerMasks: CEDAR DEFINITIONS ~ BEGIN DeviceRectangle: TYPE ~ ImagerBasic.DeviceRectangle; PixelMap: TYPE ~ ImagerPixelMaps.PixelMap; PixelArray: TYPE ~ ImagerBasic.PixelArray; Tile: TYPE ~ ImagerPixelMaps.Tile; Function: TYPE ~ ImagerPixelMaps.Function; PathMapType: TYPE ~ ImagerBasic.PathMapType; Transformation: TYPE ~ ImagerBasic.Transformation; ManhattanPolygon: TYPE ~ ImagerManhattan.Polygon; DevicePath: TYPE ~ ImagerScanConverter.DevicePath; Mask: TYPE ~ REF; FromRectangle: PROC [box: DeviceRectangle] RETURNS [Mask]; FromManhattanPolygon: PROC [polygon: ImagerManhattan.Polygon] RETURNS [Mask]; FromBitmap: PROC [pixelMap: PixelMap] RETURNS [Mask]; FromDevicePath: PROC [devicePath: DevicePath] RETURNS [Mask]; FromPixelArray: PROC [pixelArray: PixelArray, compositeTransformation: Transformation] RETURNS [Mask]; BoundingBox: PROC [mask: Mask] RETURNS [DeviceRectangle]; CountRuns: PROC [mask: Mask] RETURNS [numberOfRuns: INT]; GenerateRuns: PROC [mask, clipper: Mask, runProc: PROC [sMin, fMin: INTEGER, fSize: NAT], sTranslate, fTranslate: INTEGER _ 0]; ApplyTile: PROC [mask, clipper: Mask, dest: PixelMap, tile: Tile, function: Function _ [null, null], sTranslate, fTranslate: INTEGER _ 0]; ApplyConstant: PROC [mask, clipper: Mask, dest: PixelMap, value: CARDINAL, function: Function _ [null, null], sTranslate, fTranslate: INTEGER _ 0]; ToPixelMap: PROC [mask, clipper: Mask, sTranslate, fTranslate: INTEGER _ 0, scratch: REF ImagerPixelMaps.PixelMapRep _ NIL] RETURNS [PixelMap]; ToManhattanPolygon: PROC [mask, clipper: Mask, sTranslate, fTranslate: INTEGER _ 0] RETURNS [ImagerManhattan.Polygon]; PixelArrayFromPixelMap: PROC [pixelMap: PixelMap] RETURNS [PixelArray]; END. (ImagerMasks.mesa Michael Plass, February 8, 1984 10:45:46 am PST Provides device-resolution masks in a variety of representations. The coordinates are given in terms of s and f (for slow and fast). Data types Mask Creation Does not copy the list. Does not copy the bits. Must be one bit per pixel. Does not copy. Mask Data Extraction An upper bound. In order first by increasing sMin, then by increasing fMin. The mask is translated by [sTranslate, fTranslate] before generating runs. Causes copying. Causes copying. Does not copy the PixelMap ĘN˜J™J™/™…J˜—šĎk ˜ Jšœ ˜ Jšœ˜Jšœ˜Jšœ˜J˜J˜—šœ ˜&J˜—™ Jšœœ˜4Jšœ œ˜*Jšœ œ˜*Jšœœ˜"Jšœ œ˜*Jšœ œ˜,Jšœœ˜2Jšœœ˜1šœ œ"˜2J˜—šœœœ˜J˜——™ šĎn œœœ˜:J˜—šžœœ$œ˜MJ™J˜—šž œœœ˜5J™2J˜—šžœœœ˜=J™J˜—šžœœCœ˜fJ˜——™šž œœœ˜9J˜—šž œœœœ˜9J™J˜—š ž œœ œœ œœ˜J™;JšœJ™JJ˜—šž œœnœ˜ŠJ˜—šž œœ.œ=œ˜“J˜—š ž œœ/œœœ˜{Jšœ ˜J™J˜—šžœœ/œœ˜vJ™J˜—šžœœœ˜GJšœ™—J˜—Jšœ˜—…— z