DIRECTORY Imager USING [Context], ImagerDevice USING [Device, DeviceClass, DeviceClipper, DeviceParm], ImagerDeviceInterchange USING [InterchangeState], ImagerFont USING [Font], ImagerManhattan USING [Polygon], ImagerPrivate USING [Class], ImagerRasterPublic USING [InterceptProc, InterceptorRep], SF USING [Box, Vec]; ImagerRaster: CEDAR DEFINITIONS ~ BEGIN OPEN Imager; Class: TYPE ~ ImagerPrivate.Class; Device: TYPE ~ ImagerDevice.Device; ManhattanPolygon: TYPE ~ ImagerManhattan.Polygon; CreateClass: PROC [type: ATOM] RETURNS [Class]; Create: PROC [class: Class, deviceClass: ImagerDevice.DeviceClass, deviceParm: ImagerDevice.DeviceParm, data: REF, pixelUnits: BOOL ¬ FALSE] RETURNS [Context]; GetDevice: PROC [context: Context] RETURNS [Device]; DoWithDevice: PROC [context: Context, bounds: SF.Box, action: PROC [device: Device, clipper: ImagerDevice.DeviceClipper]]; GetContainingBox: PROC [context: Context, p: SF.Vec] RETURNS [SF.Box]; GetClipper: PROC [context: Context] RETURNS [ImagerDevice.DeviceClipper]; GetDeviceClipBox: PROC [context: Context] RETURNS [SF.Box]; SetDeviceClipBox: PROC [context: Context, clipBox: SF.Box]; Interceptor: TYPE ~ REF InterceptorRep; InterceptorRep: TYPE ~ ImagerRasterPublic.InterceptorRep; InterceptProc: TYPE ~ ImagerRasterPublic.InterceptProc; SetInterceptor: PROC [context: Context, interceptor: Interceptor] RETURNS [Interceptor]; InterceptorInEffect: PROC [context: Context] RETURNS [BOOL]; GetInterchangeState: PROC [context: Context] RETURNS [ImagerDeviceInterchange.InterchangeState]; ContextFromInterchangeState: PROC [iState: ImagerDeviceInterchange.InterchangeState, scratch: Context ¬ NIL] RETURNS [Context]; GetFontAtom: PROC [context: Context] RETURNS [ImagerFont.Font]; END. | ImagerRaster.mesa Copyright Σ 1984, 1985, 1986, 1987, 1991 by Xerox Corporation. All rights reserved. Michael Plass, August 19, 1991 2:33 pm PDT Doug Wyatt, May 30, 1985 11:21:34 pm PDT This private interface provides the Imager class operations that are common to all of the raster Context implementations. Context Class Creation Creates a class record initialized with appropriate defaults for all of the class procedures; the raster subclass may redefine these procedures as required, to implement fast cases, detect special situations, etc. Context Creation If pixelUnits=TRUE, coordinate system is in pixels; otherwise it is in meters Device Access For access to the deviceClass, deviceParm, and data passed to Create. Don't use this device for imaging, since it is unvalidated and unintercepted; use DoWithDevice for that purpose. Should be used by raster implementation cheaters to ensure that interceptions can happen. Clipping Regions in Device Coordinates Gets a box that is either empty or contains p and lies within the clipping region. Gets the composite clipper. Sets the lowest-level clipping box. Intercepting Raster Accesses Sets a new interceptor and returns the previous one. InterchangeState Returns NIL if context is not a raster context. The device will be validated, and will include any layered devices (e.g. interceptors). The clipper will be the composite clipper. Makes a raster context, with a generic imager class. Destroys iState. iState.clipper becomes the view clipper. The scratch context is used for memory re-use; none of its state is relevant. Makes a font that takes the current transformation into account. Κ –(cedarcode) style•NewlineDelimiter ™codešœ™Kšœ ΟeœI™TK™*šœ(™(K™—K™yK™—šΟk ˜ Kšœžœ ˜Kšœ žœ2˜DKšœžœ˜1Kšœ žœ˜Kšœžœ ˜ Kšœžœ ˜Kšœžœ!˜9Kšžœžœ ˜K˜—K˜KšΠbl œžœž ˜šœžœžœ˜K˜Kšœžœ˜"Kšœžœ˜#Kšœžœ˜1—head™šΟn œžœžœžœ ˜/KšœbΟcœd™Υ——™š  œžœbžœžœžœžœ ˜ŸKšœM™M——™ š  œžœžœ ˜4Kšœ> œ™EKšœR  œ™pK˜—š  œžœžœžœ8˜zK™Y——šœ&™&š  œžœžœžœžœ˜FšœR™RK™——š  œžœžœ˜I™K™——Kš œžœžœžœ˜;š œžœžœ˜;K™#——™Kšœ žœžœ˜'Kšœžœ%˜9šœžœ$˜7K˜—š œžœ.žœ˜XKšœ4™4K™—Kš œžœžœžœ˜<—šœ™š œžœžœ,˜`Kšœ/™/K™WKšœ*™*K˜—š œžœGžœžœ ˜K™4Kšœ™Kšœ(™(KšœM™MK™—š  œžœžœ˜?K™@K™——Kšžœ˜K˜—…—Τ\