DIRECTORY CD, CoreClasses, CoreGeometry, CoreIO; 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 ]; Handle: TYPE = CoreIO.Handle; ObjectClassWriteProc: TYPE = PROC [h: Handle, me: Object]; ObjectClassReadProc: TYPE = PROC [h: Handle] 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 [h: Handle, position: CD.Position]; ReadPosition: PROC [h: Handle] RETURNS [position: CD.Position]; WriteRect: PROC [h: Handle, rect: CD.Rect]; ReadRect: PROC [h: Handle] RETURNS [rect: CD.Rect]; WriteTechnology: PROC [h: Handle, technology: CD.Technology]; ReadTechnology: PROC [h: Handle] RETURNS [technology: CD.Technology]; WriteLayer: PROC [h: Handle, layer: CD.Layer]; ReadLayer: PROC [h: Handle] RETURNS [layer: CD.Layer]; WriteOrient: PROC [h: Handle, orient: CD.Orientation]; ReadOrient: PROC [h: Handle] RETURNS [orient: CD.Orientation]; WriteTrans: PROC [h: Handle, trans: CD.Transformation]; ReadTrans: PROC [h: Handle] RETURNS [trans: CD.Transformation]; WriteCDProperties: PROC [h: Handle, properties: CD.PropList]; ReadCDProperties: PROC [h: Handle] RETURNS [properties: CD.PropList _ NIL]; WriteCDInstance: PROC [h: Handle, instance: CD.Instance]; ReadCDInstance: PROC [h: Handle] RETURNS [instance: CD.Instance]; WriteCDInstances: PROC [h: Handle, instances: LIST OF CD.Instance]; ReadCDInstances: PROC [h: Handle] RETURNS [instances: LIST OF CD.Instance _ NIL]; WriteInstance: PROC [h: Handle, instance: CoreGeometry.Instance]; ReadInstance: PROC [h: Handle] RETURNS [instance: CoreGeometry.Instance]; WriteInstances: PROC [h: Handle, instances: CoreGeometry.Instances]; ReadInstances: PROC [h: Handle] RETURNS [instances: CoreGeometry.Instances _ NIL]; WriteObject: PROC [h: Handle, obj: CD.Object]; ReadObject: PROC [h: Handle] RETURNS [obj: CD.Object]; END. lCoreGeometryBackdoor.mesa Copyright c 1987 by Xerox Corporation. All rights reserved. Bertrand Serlet, March 13, 1987 4:25:20 pm PST 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šœ Οmœ1™—šŸœžœžœžœ žœ"žœžœžœ˜xK™BK™—šŸœžœ˜4K˜—šŸœžœžœF˜pK˜—KšŸ œžœžœ ˜7KšŸ œžœ žœ žœ ˜?KšŸ œžœžœ˜+JšŸœžœ žœžœ˜3KšŸœžœžœ ˜=KšŸœžœ žœžœ ˜EKšŸ œžœžœ˜.KšŸ œžœ žœ žœ˜6KšŸ œžœžœ˜6KšŸ œžœ žœ žœ˜>KšŸ œžœžœ˜7šŸ œžœ žœ žœ˜?K˜—KšŸœžœžœ ˜=Kš Ÿœžœ žœžœ žœ˜KKšŸœžœžœ ˜9JšŸœžœ žœ žœ ˜AKš Ÿœžœžœžœžœ ˜CšŸœžœ žœ žœžœžœ žœ˜QK˜—KšŸ œžœ.˜AJšŸ œžœ žœ#˜IKšŸœžœ0˜DšŸ œžœ žœ&žœ˜RK˜—KšŸ œžœžœ ˜.šŸ œžœ žœžœ ˜6K˜——Kšžœ˜—…— b‘