DIRECTORY Basics, CD, CDCells, D2Basic, Rope; RTBasic: CEDAR DEFINITIONS IMPORTS CDCells = 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; sideName: ARRAY RTBasic.Side OF Rope.ROPE; 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]; SetCDCellName: PROC [obj: CD.Object, name: Rope.ROPE] ~ INLINE{ cellPtr: CD.CellPtr _ NARROW [obj.specificRef]; cellPtr.name _ name}; CDCellIsEmpty: PROC [obj: CD.Object] RETURNS [BOOLEAN] ~ INLINE{ cellPtr: CD.CellPtr _ NARROW [obj.specificRef]; RETURN[cellPtr.contents = NIL]}; RepositionCell: PROC [obj: CD.Object] ~ INLINE{ IF ~CDCellIsEmpty[obj] THEN [] _ CDCells.RepositionCell[obj, NIL]}; END. 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 September 2, 1986 2:16:09 pm PDT convert a position from x-y to p-q space. convert a position from p-q to x-y space. ΚΫ˜šœ ™ Jšœ Οmœ7™BJšœ0™0Jšœ=™=—J˜šΟk ˜ Jšœžœ˜#J˜—šΟnœžœž ˜Jšžœ˜Jšž˜J˜Jšœ žœ$˜4Jšœžœ˜)Jšœžœ˜)Jšœžœ˜)Jšœžœ ˜5Jšœ žœ+˜:Jšœžœ˜$J˜šœžœžœ˜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˜—codeš Ÿ œžœžœžœžœ˜?Jšœ žœ žœ˜/Jšœ˜J˜—š Ÿ œžœžœ žœžœžœ˜@Jšœ žœ žœ˜/Jšžœžœ˜ J˜—šŸœžœžœ žœ˜/Jšžœžœ"žœ˜CJ˜—Jšžœ˜—J˜J˜—…—~ u