DIRECTORY Real, Vector2; G2dBasic: CEDAR DEFINITIONS IMPORTS Real ~ BEGIN Sign: TYPE ~ {positive, negative}; Border: TYPE ~ {inside, outside, edge}; -- relative to closed, planar region Box: TYPE ~ RECORD [min, max: Pair]; -- 2d bounding box Pair: TYPE ~ Vector2.VEC ¬ [0.0, 0.0]; -- RECORD [x, y: REAL] Triple: TYPE ~ RECORD [x, y, z: REAL ¬ 0.0]; NatPair: TYPE ~ RECORD [x, y: NAT ¬ 0]; IntPair: TYPE ~ RECORD [x, y: INT ¬ 0]; IntegerPair: TYPE ~ RECORD [x, y: INTEGER ¬ 0]; Card3: TYPE ~ RECORD [x, y, z: CARD ¬ 0]; Integer3: TYPE ~ RECORD [x, y, z: INTEGER ¬ 0]; Nat3: TYPE ~ RECORD [x, y, z: NAT ¬ 0]; NearSegment: TYPE ~ RECORD [ point: Pair ¬ [0.0, 0.0], -- point on 2d segment inside: BOOL ¬ FALSE, -- true iff point inside segment w0, w1: REAL ¬ 0.0 -- point = w0*p0+w1*p1 ]; NatSequence: TYPE ~ REF NatSequenceRep; NatSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF NAT]; IntegerSequence: TYPE ~ REF IntegerSequenceRep; IntegerSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF INTEGER]; IntSequence: TYPE ~ REF IntSequenceRep; IntSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF INT]; RealSequence: TYPE ~ REF RealSequenceRep; RealSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF REAL ]; PairSequence: TYPE ~ REF PairSequenceRep; PairSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF Pair ]; NatPairSequence: TYPE ~ REF NatPairSequenceRep; NatPairSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF NatPair ]; IntegerPairSequence: TYPE ~ REF IntegerPairSequenceRep; IntegerPairSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF IntegerPair ]; IntPairSequence: TYPE ~ REF IntPairSequenceRep; IntPairSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF IntPair ]; TripleSequence: TYPE ~ REF TripleSequenceRep; TripleSequenceRep: TYPE ~ RECORD [ length: CARDINAL ¬ 0, element: SEQUENCE maxLength: CARDINAL OF Triple ]; origin: Pair ~ [0.0, 0.0]; xAxis: Triple ~ [1.0, 0.0, 0.0]; yAxis: Triple ~ [0.0, 1.0, 0.0]; zAxis: Triple ~ [0.0, 0.0, 1.0]; PI: REAL ~ 3.1415926535; maxNNats: CARDINAL ~ (LAST[CARDINAL]-4-SIZE[NatSequenceRep[0]])/SIZE[NAT]; maxNPairs: CARDINAL ~ (LAST[CARDINAL]-4-SIZE[PairSequenceRep[0]])/SIZE[Pair]; maxNTriples: CARDINAL ~(LAST[CARDINAL]-4-SIZE[TripleSequenceRep[0]])/SIZE[Triple]; RealMod: PROC [a, b: REAL] RETURNS [REAL] ~ INLINE {RETURN[a-Real.Floor[a/b]*b]}; ArcCos: PROC [cos: REAL] RETURNS [REAL]; ArcCosDeg: PROC [cos: REAL] RETURNS [REAL]; CopyNatSequence: PROC [nats: NatSequence] RETURNS [NatSequence]; CopyIntegerSequence: PROC [integers: IntegerSequence] RETURNS [IntegerSequence]; CopyIntSequence: PROC [ints: IntSequence] RETURNS [IntSequence]; CopyRealSequence: PROC [reals: RealSequence] RETURNS [RealSequence]; CopyPairSequence: PROC [pairs: PairSequence] RETURNS [PairSequence]; CopyIntPairSequence: PROC [intPairs: IntPairSequence] RETURNS [IntPairSequence]; CopyIntegerPairSequence: PROC [integerPairs: IntegerPairSequence] RETURNS [IntegerPairSequence]; CopyNatPairSequence: PROC [natPairs: NatPairSequence] RETURNS [NatPairSequence]; AddToNatSequence: PROC [nats: NatSequence, nat: NAT] RETURNS [NatSequence]; AddToIntegerSequence: PROC [integers: IntegerSequence, integer: INTEGER] RETURNS [IntegerSequence]; AddToIntSequence: PROC [ints: IntSequence, int: INT] RETURNS [IntSequence]; AddToRealSequence: PROC [reals: RealSequence, real: REAL] RETURNS [RealSequence]; AddToPairSequence: PROC [pairs: PairSequence, pair: Pair] RETURNS [PairSequence]; AddToNatPairSequence: PROC [natPairs: NatPairSequence, natPair: NatPair] RETURNS [NatPairSequence]; AddToIntPairSequence: PROC [intPairs: IntPairSequence, intPair: IntPair] RETURNS [IntPairSequence]; AddToIntegerPairSequence: PROC [integerPairs: IntegerPairSequence, integerPair: IntegerPair] RETURNS [IntegerPairSequence]; LengthenNatSequence: PROC [nats: NatSequence, amount: REAL ¬ 1.3] RETURNS [NatSequence]; LengthenIntegerSequence: PROC [integers: IntegerSequence, amount: REAL ¬ 1.3] RETURNS [IntegerSequence]; LengthenIntSequence: PROC [ints: IntSequence, amount: REAL ¬ 1.3] RETURNS [IntSequence]; LengthenRealSequence: PROC [reals: RealSequence, amount: REAL ¬ 1.3] RETURNS [RealSequence]; LengthenPairSequence: PROC [pairs: PairSequence, amount: REAL ¬ 1.3] RETURNS [PairSequence]; LengthenNatPairSequence: PROC [natPairs: NatPairSequence, amount: REAL ¬ 1.3] RETURNS [NatPairSequence]; LengthenIntPairSequence: PROC [intPairs: IntPairSequence, amount: REAL ¬ 1.3] RETURNS [IntPairSequence]; LengthenIntegerPairSequence: PROC [integerPairs: IntegerPairSequence, amount: REAL ¬ 1.3] RETURNS [IntegerPairSequence]; END.  G2dBasic.mesa Copyright Σ 1984, 1992 by Xerox Corporation. All rights reserved. Bloomenthal, July 1, 1992 7:03 pm PDT Basic Types Nearness Types Sequences Constants Basic Operations a MOD b for a, b real Return the angle in radians. Return the angle in degrees. Sequence Copying Return a copy of the input sequence of nats. Return a copy of the input sequence of triples. Return a copy of the input sequence of triples. Return a copy of the input sequence of reals. Return a copy of the input sequence of pairs. Return a copy of the input sequence of intPairs. Return a copy of the input sequence of integerPairs. Return a copy of the input sequence of natPairs. Adding to a Sequence Add nat to the sequence. Add integer to the sequence. Add int to the sequence. Add real to the sequence. Add pair to the sequence. Add natPair to the sequence. Add intPair to the sequence. Add integerPair to the sequence. Lengthening a Sequence Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence of reals. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Return a copy of the input sequence whose maxLength is amount*input.maxLength. Κ•NewlineDelimiter –"cedarcode" style™™ Jšœ Οeœ6™B™%J™—JšΟk œ˜J˜—šΠlnœžœž ˜Jšžœ˜ —Jšœž˜headšΟl ™ Jšœ žœ˜'Jšœ žœΟc&˜Ršœžœžœ‘˜=J˜—Jš œ žœ žœ‘ΡcosΠco’£˜Cšœ žœžœ žœ˜0J˜—Jšœ žœžœžœ˜+Jšœ žœžœžœ˜+šœ žœžœžœ˜2J˜—Jšœžœžœ žœ˜.Jšœ žœžœ žœ˜3Jšœžœžœ žœ˜,—š ™šœžœžœ˜Jšœ#‘˜9Jšœžœžœ‘ ˜>Jšœžœ ‘˜2J˜——š  ™ Jšœžœžœ˜*šœžœžœ˜!Jšœžœ˜š œžœ žœžœžœ˜4J˜——Jšœžœžœ˜1šœžœžœ˜$Jšœžœ˜Jš œžœ žœžœžœ˜8—J˜Jšœžœžœ˜*šœžœžœ˜!Jšœžœ˜š œžœ žœžœžœ˜4J˜——Jšœžœžœ˜+šœžœžœ˜!Jšœžœ˜Jšœžœ žœžœž˜3˜J˜——Jšœžœžœ˜+šœžœžœ˜!Jšœžœ˜Jšœžœ žœžœ˜3˜J˜——Jšœžœžœ˜0šœžœžœ˜#Jšœžœ˜Jšœžœ žœžœ˜6J˜J˜—Jšœžœžœ˜7šœΠksžœžœ˜'Jšœžœ˜Jšœžœ žœžœ ˜:˜J˜——Jšœžœžœ˜1šœžœžœ˜$Jšœžœ˜Jšœžœ žœžœ˜6J˜J˜—Jšœžœžœ˜/šœžœžœ˜#Jšœžœ˜Jšœžœ žœžœ˜5J˜——š  ™ ˜J˜—J˜%J˜$˜%J˜—šžœžœ˜J˜—Jšœ ž œžœžœžœΟsœžœžœ˜MJš œ ž œžœžœžœ₯œžœ˜PJš œ ž œžœžœžœ₯œžœ ˜U—š ™šΟnœžœžœžœžœžœžœ˜QJšΟoΠos§™J˜—š ¦œžœžœžœžœ˜(šœ™J™——š ¦ œžœžœžœžœ˜+Jšœ™——š ™š¦œžœžœ˜@™,J™——š¦œžœžœ˜P™/J™——š¦œžœžœ˜@™/J™——š¦œžœžœ˜D™-J™——š¦œžœžœ˜D™-J™——š¦œžœžœ˜P™0J™——š¦œžœ$˜AJšžœ˜™4J™——š¦œžœžœ˜PJ™0——š ™š¦œžœžœžœ˜K™J™——š¦œžœ&žœ˜HJšžœ˜™J™——š¦œžœžœžœ˜K™J™——š¦œžœžœžœ˜Q™J™——š¦œžœ"žœ˜Q™J™——š¦œžœ.˜HJšžœ˜™J™——š¦œžœ.˜HJšžœ˜™J™——š¦œžœ>˜\Jšžœ˜J™ ——š ™š¦œžœžœ˜AJšžœ˜™NJ™——š¦œžœ%žœ˜MJšžœ˜™NJ™——š¦œžœžœ˜AJšžœ˜™NJ™——š¦œžœžœ˜DJšžœ˜™-J™——š¦œžœžœ˜DJšžœ˜™NJ™——š¦œžœ%žœ˜MJšžœ˜™NJ™——š¦œžœ%žœ˜MJšžœ˜™NJ™——š¦œžœ-žœ˜YJšžœ˜J™N——J˜Jšžœ˜—…— "6