ImagerMask.mesa
Copyright © 1984, Xerox Corporation. All rights reserved.
Michael Plass, February 8, 1984 10:45:46 am PST
Doug Wyatt, October 10, 1984 4:04:51 pm PDT
DIRECTORY
ImagerManhattan USING [Polygon],
ImagerPixelArray USING [PixelArray],
ImagerPixelMap USING [DeviceRectangle, Function, PixelMap, PixelMapRep, Tile],
ImagerScanConverter USING [DevicePath],
ImagerTransformation USING [Transformation];
Data types
DeviceRectangle: TYPE ~ ImagerPixelMap.DeviceRectangle;
PixelMap: TYPE ~ ImagerPixelMap.PixelMap;
PixelArray: TYPE ~ ImagerPixelArray.PixelArray;
Tile: TYPE ~ ImagerPixelMap.Tile;
Function: TYPE ~ ImagerPixelMap.Function;
Transformation: TYPE ~ ImagerTransformation.Transformation;
ManhattanPolygon: TYPE ~ ImagerManhattan.Polygon;
DevicePath:
TYPE ~ ImagerScanConverter.DevicePath;
Mask Creation
FromRectangle:
PROC [box: DeviceRectangle]
RETURNS [Mask];
FromManhattanPolygon:
PROC [polygon: ManhattanPolygon]
RETURNS [Mask]
~ INLINE { RETURN[polygon] };
Does not copy the list.
FromBitmap:
PROC [pixelMap: PixelMap]
RETURNS [Mask];
Does not copy the bits. Must be one bit per pixel.
FromDevicePath:
PROC [devicePath: DevicePath]
RETURNS [Mask]
~ INLINE { RETURN[devicePath] };
Does not copy.
FromPixelArray:
PROC [pixelArray: PixelArray, compositeTransformation: Transformation]
RETURNS [Mask];
Mask Data Extraction
BoundingBox:
PROC [mask: Mask]
RETURNS [DeviceRectangle];
CountRuns:
PROC [mask: Mask]
RETURNS [numberOfRuns:
INT];
An upper bound.
GenerateRuns:
PROC [mask, clipper: Mask, runProc:
PROC [sMin, fMin:
INTEGER, fSize:
NAT], sTranslate, fTranslate:
INTEGER ← 0];
In order first by increasing sMin, then by increasing fMin.
The mask is translated by [sTranslate, fTranslate] before generating runs.
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 ImagerPixelMap.PixelMapRep ←
NIL]
RETURNS [PixelMap];
Causes copying.
ToManhattanPolygon:
PROC [mask, clipper: Mask, sTranslate, fTranslate:
INTEGER ← 0]
RETURNS [ManhattanPolygon];
Causes copying.
PixelArrayFromPixelMap:
PROC [pixelMap: PixelMap]
RETURNS [PixelArray];
Does not copy the PixelMap