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.