CoreGeometryBackdoor.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Bertrand Serlet, May 5, 1988 5:23:42 pm PDT
Backdoor for fancy operations on decorated Core, such as IO.
DIRECTORY
CD,
CoreClasses, CoreGeometry,
IO;
CoreGeometryBackdoor: CEDAR DEFINITIONS ~ BEGIN OPEN CoreGeometry;
maxInstanceSeq: NAT = 9000;
Maximum size of InstanceSeq
InstanceSeq: TYPE = REF InstanceSeqRec;
InstanceSeqRec: TYPE = RECORD [instances: SEQUENCE size: NAT OF Instance];
TransWireIR: TYPE = REF TransWireIRRec;
TransWireIRRec: TYPE = RECORD [ir: Rect, tws: SEQUENCE size: NAT OF TransWire];
TransWire: TYPE = RECORD [trans: Transformation, wire: Wire];
LazyEnumerateData: TYPE = REF LazyEnumerateDataRec;
LazyEnumerateDataRec: TYPE = RECORD [
proc: LazyEnumerateProc, data1, data2: REFNIL
];
ObjectClassWriteProc: TYPE = PROC [stream: IO.STREAM, me: Object];
ObjectClassReadProc: TYPE = PROC [stream: IO.STREAM] RETURNS [obj: Object];
RawEnumeratePins: PUBLIC PROC [prop: ATOM, value: REF, eachInstance: EachInstanceProc] RETURNS [quit: BOOLFALSE];
Raw enumeration of pins that necessitates very little context.
RawEnumerateGeometry: PUBLIC PROC [prop: ATOM, value: REF, eachInstance: EachInstanceProc] RETURNS [quit: BOOLFALSE];
Raw enumeration of geometry that necessitates very little context.
RegisterDecorationIO: PROC [decoration: Decoration];
RegisterObjectClass: PROC [objectClass: CD.ObjectClass, write: ObjectClassWriteProc, read: ObjectClassReadProc];
WritePosition: PROC [stream: IO.STREAM, position: CD.Position];
ReadPosition: PROC [stream: IO.STREAM] RETURNS [position: CD.Position];
WriteRect: PROC [stream: IO.STREAM, rect: CD.Rect];
ReadRect: PROC [stream: IO.STREAM] RETURNS [rect: CD.Rect];
WriteTechnology: PROC [stream: IO.STREAM, technology: CD.Technology];
ReadTechnology: PROC [stream: IO.STREAM] RETURNS [technology: CD.Technology];
WriteLayer: PROC [stream: IO.STREAM, layer: CD.Layer];
ReadLayer: PROC [stream: IO.STREAM] RETURNS [layer: CD.Layer];
WriteOrient: PROC [stream: IO.STREAM, orient: CD.Orientation];
ReadOrient: PROC [stream: IO.STREAM] RETURNS [orient: CD.Orientation];
WriteTrans: PROC [stream: IO.STREAM, trans: CD.Transformation];
ReadTrans: PROC [stream: IO.STREAM] RETURNS [trans: CD.Transformation];
WriteCDProperties: PROC [stream: IO.STREAM, properties: CD.PropList];
ReadCDProperties: PROC [stream: IO.STREAM] RETURNS [properties: CD.PropList ← NIL];
WriteCDInstance: PROC [stream: IO.STREAM, instance: CD.Instance];
ReadCDInstance: PROC [stream: IO.STREAM] RETURNS [instance: CD.Instance];
WriteCDInstances: PROC [stream: IO.STREAM, instances: LIST OF CD.Instance];
ReadCDInstances: PROC [stream: IO.STREAM] RETURNS [instances: LIST OF CD.Instance ← NIL];
WriteInstance: PROC [stream: IO.STREAM, instance: CoreGeometry.Instance];
ReadInstance: PROC [stream: IO.STREAM] RETURNS [instance: CoreGeometry.Instance];
WriteInstances: PROC [stream: IO.STREAM, instances: CoreGeometry.Instances];
ReadInstances: PROC [stream: IO.STREAM] RETURNS [instances: CoreGeometry.Instances ← NIL];
WriteObject: PROC [stream: IO.STREAM, obj: CD.Object];
ReadObject: PROC [stream: IO.STREAM] RETURNS [obj: CD.Object];
END.