DIRECTORY Basics, CD, D2Basic; RTBasic: CEDAR DEFINITIONS = BEGIN SideOrNone: TYPE = {bottom, top, left, right, none}; Side: TYPE = SideOrNone[bottom .. right]; LRSide: TYPE = SideOrNone[left .. right]; TBSide: TYPE = SideOrNone[bottom .. top]; DirectionOrNone: TYPE = {horizontal, vertical, none}; Direction: TYPE = DirectionOrNone[horizontal .. vertical]; AboveOrBelow: TYPE = {above, below}; PQPos: TYPE = RECORD[ p: D2Basic.Number, q: D2Basic.Number]; PQRectRef: TYPE = REF PQRect; PQRect: TYPE = RECORD[ c1, c2: PQPos]; PQRectList: TYPE = LIST OF PQRect; Range: TYPE = RECORD [ l, r: D2Basic.Number]; RangeList: TYPE = LIST OF Range; RefRange: TYPE = REF Range; OtherSide: PROCEDURE [side: Side] RETURNS [Side]; OtherDirection: PROCEDURE [direction: Direction] RETURNS [Direction]; OtherRelation: PROCEDURE [aboveOrBelow: AboveOrBelow] RETURNS [AboveOrBelow]; SimpleCompare: PROCEDURE [result1, result2: D2Basic.Number] RETURNS [result: Basics.Comparison]; XYToPQ: PROC [pDir: Direction, pos: D2Basic.Pos] RETURNS [pqPos: PQPos]; PQToXY: PROC [pDir: Direction, pqPos: PQPos] RETURNS [pos: D2Basic.Pos]; IRSize: PROC [obj: CD.Object] RETURNS [CD.Position]; END. 2RTBasic.mesa ///StdCell/RTBasic.mesa Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. by Bryan Preas August 29, 1985 2:48:22 pm PDT last edited by Bryan Preas April 3, 1986 9:45:25 am PST convert a position from x-y to p-q space. convert a position from p-q to x-y space. Ê*˜Jšœ&™&˜Jšœ Ïmœ7™BJšœ0™0Jšœ9™9—J˜šÏk ˜ J˜Jšžœ˜Jšœ˜J˜—šÏnœžœž œ˜Jšž˜J˜Jšœ žœ$˜4Jšœžœ˜)Jšœžœ˜)Jšœžœ˜)Jšœžœ ˜5Jšœ žœ+˜:Jšœžœ˜$J˜šœžœžœ˜Jšœ˜Jšœ˜J˜—Jšœ žœžœ˜šœžœžœ˜Jšœ˜—Jšœ žœžœžœ˜#J˜šœžœžœ˜Jšœ˜—Jšœ žœžœžœ˜ Jšœ žœžœ˜J˜šŸ œž œ ˜!Jšžœ˜—J˜šŸœž œ˜0Jšžœ ˜J˜—šŸ œž œ˜5Jšžœ˜J˜—šŸ œž œ#˜;Jšžœ˜$—J™šŸœžœ%žœ˜HJ™)J™—šŸœžœ!žœ˜HJ™)—J˜š Ÿœžœžœ žœžœ ˜4J˜—Jšžœ˜—J˜J˜—…—¤