ImagerPrivate.mesa
This interface provides the underlying data structures necessary to more than one definitions module within the Imager
Last Edited by:
Crow, June 20, 1983 3:59 pm
DIRECTORY
ImagerBasic;
ImagerPrivate: CEDAR DEFINITIONS
= BEGIN
Basic Definitions (Numbers and Shapes)
Context
ImagingSpace: TYPE = { client, viewer, device };
Transformation: TYPE = ImagerBasic.Transformation;
Context: TYPE = REF ContextRep; -- Holds the imager state
ContextRep: TYPE = RECORD [
currentColor: ImagerBasic.Color,
currentFont: REF,
currentIntPosition: ImagerBasic.IntPair,    -- CP kept in device space
currentPosition: ImagerBasic.Pair,     -- For floating point types
   -- ********* Transformations ************
clientTransform: Transformation,
viewerTransform: Transformation,
deviceTransform: Transformation,
compositeTransform: Transformation,
integerTranslation: ImagerBasic.IntPair, -- used only if the compositeTransform not hard
            -- ***************** Clipping ***********
clientClipper: ClipperRecord,
viewerClipper: ClipperRecord,
deviceClipper: ClipperRecord,
clipper: ClipperRecord,              -- composite clipper
noClipArmed, noClip: BOOLEANFALSE,
data: REF ANY  -- Interpretation of this depends on the procs
];
Clipping
ClipperType: TYPE = {none, rectangle, path};
ClipperRecord: TYPE = RECORD [
xMin, xMax, yMin, yMax: INTEGER, -- use "path" if Client clipper is outside integer range
type: ClipperType,
clipper: Clipper       -- used if type is "path"
];
Clipper: TYPE = REF ClipperRep;
ClipperRep: TYPE = RECORD [
xMin, xMax, yMin, yMax: REAL,
paths: LIST OF RECORD [exclude: BOOLEAN, path: ImagerBasic.Path]
];
END.