DIRECTORY CD, CoreClasses, CoreGeometry, IO; CoreGeometryBackdoor: CEDAR DEFINITIONS ~ BEGIN OPEN CoreGeometry; maxInstanceSeq: NAT = 9000; 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: REF _ NIL ]; 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: BOOL _ FALSE]; RawEnumerateGeometry: PUBLIC PROC [prop: ATOM, value: REF, eachInstance: EachInstanceProc] RETURNS [quit: BOOL _ FALSE]; 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. hCoreGeometryBackdoor.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. Maximum size of InstanceSeq Raw enumeration of pins that necessitates very little context. Raw enumeration of geometry that necessitates very little context. Κ£˜codešœ™Kšœ<™—šžœœœœ œ"œœœ˜xK™BK™—šžœœ˜4K˜—šžœœœF˜pK˜—Kš ž œœ œœ œ ˜?Kš ž œœ œœœ œ ˜GKš ž œœ œœœ˜3Jš žœœ œœœœ˜;Kš žœœ œœœ ˜EKš žœœ œœœœ ˜MKš ž œœ œœ œ˜6Kš ž œœ œœœ œ˜>Kš ž œœ œœ œ˜>Kš ž œœ œœœ œ˜FKš ž œœ œœ œ˜?š ž œœ œœœ œ˜GK˜—Kš žœœ œœœ ˜EKšžœœ œœœœ œ˜SKš žœœ œœ œ ˜AJš žœœ œœœ œ ˜IKšžœœ œœ œœœ ˜Kšžœœ œœœ œœœ œ˜YK˜—Kšž œœ œœ#˜IJš ž œœ œœœ#˜QKšžœœ œœ%˜Lš ž œœ œœœ&œ˜ZK˜—Kš ž œœ œœœ ˜6š ž œœ œœœœ ˜>K˜——Kšœ˜—…—