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
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: BOOLEAN ← FALSE,
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]
];