CDPlot.mesa
Copyright c 1985 by Xerox Corporation. All rights resersed.
Last Edited by: Curry, March 27, 1986 6:54:06 pm PST
DIRECTORY CD, Imager, ImagerPD, PDFileFormat, PDFileWriter, Rope;
CDPlot: CEDAR DEFINITIONS =
BEGIN
PrinterType:   TYPE = ImagerPD.PrinterType;
PrinterLTS:   TYPE = ARRAY PrinterType OF REF LayerTonerSipples;
LayerTonerSipples: TYPE = RECORD[SEQUENCE size: CD.Layer OF ARRAY Toner OF REF];
Toner:    TYPE = PDFileFormat.Toner[black..yellow]; --black cyan magenta yellow
Stipple16:    TYPE = ARRAY[0..16) OF CARDINAL;
Stipple8:    TYPE = ARRAY[0.. 8) OF [0..256);
Stipple4:    TYPE = ARRAY[0.. 4) OF [0.. 16);
LayerTonerLoadRef: TYPE = ARRAY CD.Layer OF REF TonerLoadRef ← ALL[NIL];
TonerLoadRef:  TYPE = ARRAY Toner OF PDFileWriter.LoadReference;
IP Constants
c400PageX:  REAL = 0.292;
c400PageY:  REAL = 0.419;
standardPageX: REAL = 0.216; -- (72*8.5; points) US standard page width
standardPageY: REAL = 0.277; -- (72*11.0; points)
IPScaleType: TYPE = {variable, fixed, stripe};
IPBorderType: TYPE = {yes, mosaic, no};
IPControlRec: TYPE = RECORD [
pageNumX: INT    ← 1,     -- number of columns
pageNumY: INT    ← 1,     -- number of rows
clip:   CD.Rect   ← [0,0,0,0],   -- area to be printed
type:   IPScaleType  ← variable,   -- scaling type
borders:  IPBorderType ← yes,    -- border type
altFonts:  BOOL    ← FALSE,    -- font translation BOOL
altFontsFile: Rope.ROPE  ← NIL,    -- font translation file name
special:  BOOL    ← FALSE,    -- temp used by dialog routines
specialMults: BOOL    ← FALSE,    -- temp used by dialog routines
pageX:  REAL    ← standardPageX, -- adjusted by scale routines
pageY:  REAL    ← standardPageY, -- adjusted by scale routines
transPos:  Imager.VEC  ← [0, 0],    -- adjusted by scale routines
sizePerPage: CD.Position  ← [0, 0],    -- adjusted by scale routines
scale:   REAL    ← 1.0 ];    -- adjusted by scale routines
PDControlRec: TYPE = RECORD [
ipType:  PrinterType  ← nil,
stripes:  INT   ← 1,
clip:   CD.Rect  ← [0,0,0,0] ];
PrinterDesc: TYPE = RECORD[
name:  Rope.ROPE  ← NIL,
color:  BOOL    ← FALSE,
pgType: {page, stripe} ← stripe,
iFace:  {peach, tsetter} ← peach,
ipType: PrinterType   ← nil ];
combined: CD.Layer = CD.undefLayer;
highlight: CD.Layer = CD.shadeLayer;
error:   CD.Layer = CD.errorLayer;
comment:  CD.Layer = CD.commentLayer;
NEW4: PROC[stipple: Stipple4] RETURNS[REF];
NEW8: PROC[stipple: Stipple8] RETURNS[REF];
NEWLayerTonerSipples: PROC[size: CD.Layer] RETURNS[lts: REF LayerTonerSipples];
GetTechnologyStipple: PROC [tech: ATOM   ] RETURNS [ REF LayerTonerSipples];
SetTechnologyStipple: PROC [tech: ATOM,    stipples: REF LayerTonerSipples];
GetDesignStipple:   PROC [design: CD.Design ] RETURNS [ REF LayerTonerSipples];
SetDesignStipple:   PROC [design: CD.Design,  stipples: REF LayerTonerSipples];
SwapSipples: PROC[stipples: REF LayerTonerSipples]; -- for init of color400 stipples
GetStipples: PROC[design: CD.Design, printerType: PrinterType]
RETURNS [stipples: REF LayerTonerSipples];
InitSil:  PROC;
InitCMosA: PROC;
InitCMosB: PROC;
InitNMos: PROC;
CDIPPlot: PROC[design: CD.Design, ipc: REF IPControlRec];
CDPDPlot: PROC[design: CD.Design, pdc: REF PDControlRec];
END.