DIRECTORY IIPath USING [PathProc], IISample USING [EdgeAction], IITransformation USING [Transformation], SF USING [Box, BoxAction, BoxGenerator, maxBox]; IIScanConverter: CEDAR DEFINITIONS ~ BEGIN PathProc: TYPE ~ IIPath.PathProc; Transformation: TYPE ~ IITransformation.Transformation; Box: TYPE ~ SF.Box; maxBox: Box ~ SF.maxBox; BoxAction: TYPE ~ SF.BoxAction; DevicePath: TYPE ~ REF DevicePathRep; DevicePathRep: TYPE; Create: PROC RETURNS [DevicePath]; SetPath: PROC [devicePath: DevicePath, path: PathProc, transformation: Transformation _ NIL, clipBox: Box _ maxBox]; CreatePath: PROC [path: PathProc, transformation: Transformation _ NIL, clipBox: Box _ maxBox, scratch: DevicePath _ NIL -- for re-use of storage ] RETURNS [DevicePath]; BoundingBox: PROC [devicePath: DevicePath, clipBox: Box _ maxBox] RETURNS [Box]; NumberOfBoxes: PROC [devicePath: DevicePath] RETURNS [INT]; Monotone: PROC [devicePath: DevicePath] RETURNS [BOOL]; GenerateEdges: PROC [devicePath: DevicePath, edgeAction: IISample.EdgeAction]; ConvertToBoxes: PROC [devicePath: DevicePath, oddWrap: BOOL _ FALSE, clipBox: Box _ maxBox, boxAction: BoxAction]; ConvertToManhattanPolygon: PROC [devicePath: DevicePath, oddWrap: BOOL _ FALSE, clipBox: Box _ maxBox] RETURNS [LIST OF Box]; ObjectsFromPath: PROC [path: PathProc, clipBox: Box, objectProc: PROC [Box, SF.BoxGenerator], devicePath: DevicePath]; END. ’IIScanConverter.mesa Copyright Σ 1984, 1985, 1986 by Xerox Corporation. All rights reserved. Michael Plass, November 21, 1986 12:43:02 pm PST Doug Wyatt, March 7, 1986 2:06:19 pm PST A tight bounding box, clipped to clipBox. Guaranteed to be an upper bound, should be close to the actual. Says whether the area is a monotone region, and hence subject to rapid scan conversion. Enumerates the edges, sorted by increasing sMin. Satisfies assertion for an IIManhattan.Polygon. Makes a separate call to objectProc for each trajectory of the path. The Box passed to objectProc is a bounding box for the trajectory, and the BoxGenerator generates the individual boxes. Κ˜codešœ™KšœH™HK™0K™(—K˜šΟk ˜ Kšœœ ˜Kšœ œ˜Kšœœ˜(Kšœœ(˜0—K˜KšΠblœœ ˜"šœ˜K˜Kšœ œ˜!Kšœœ#˜7Kšœœœ˜Kšœœ˜šœ œœ ˜K˜—Kšœ œœ˜%šœœ˜K˜—šΟnœœœ˜"K˜—šŸœœKœ˜tK˜—š Ÿ œœ4œ/œΟcœœ˜ͺK˜—šŸ œœ1œ˜PKšœ)™)K™—šŸ œœœœ˜;K™?K™—šŸœœœœ˜7K™WK˜—šŸ œœ;˜NK™0K˜—šŸœœ#œœ0˜sK˜—šŸœœ#œœœœœ˜}K™/K˜—šŸœœ,œœ(˜vJšœ½™½K˜——Kšœ˜J˜—…—| 2