<<>> <> <> <> <<>> DIRECTORY G2dBasic; G2dVector: CEDAR DEFINITIONS ~ BEGIN <> Box: TYPE ~ G2dBasic.Box; NatPair: TYPE ~ G2dBasic.NatPair; NearSegment: TYPE ~ G2dBasic.NearSegment; Pair: TYPE ~ G2dBasic.Pair; PairSequence: TYPE ~ G2dBasic.PairSequence; Triple: TYPE ~ G2dBasic.Triple; <> Null: PROC [v: Pair] RETURNS [BOOL]; <> <<>> Negate: PROC [p: Pair] RETURNS [Pair]; <> <<>> Unit: PROC [p: Pair] RETURNS [Pair]; <> <<>> Mul: PROC [p: Pair, s: REAL] RETURNS [Pair]; <> <<>> Div: PROC [p: Pair, s: REAL] RETURNS [Pair]; <> <> Add: PROC [p1, p2: Pair] RETURNS [Pair]; <> <<>> Sub: PROC [p1, p2: Pair] RETURNS [Pair]; <> <<>> Equal: PROC [v1, v2: Pair, epsilon: REAL ¬ 0.001] RETURNS [BOOL]; <> Dot: PROC [p1, p2: Pair] RETURNS [REAL]; <> <<>> Cross: PROC [p1, p2: Pair] RETURNS [REAL]; <> <<>> Midpoint: PROC [v1, v2: Pair] RETURNS [Pair]; <> <<>> Interp: PROC [t: REAL, v1, v2: Pair] RETURNS [Pair]; <> <<>> Combine: PROC [v1: Pair, s1: REAL, v2: Pair, s2: REAL] RETURNS [Pair]; <> <<>> MulVectors: PROC [v1, v2: Pair] RETURNS [Pair]; <> <<>> DivVectors: PROC [v1, v2: Pair] RETURNS [Pair]; <> <> UnitizeSequence: PROC [pairs: PairSequence]; <> AverageSequence: PROC [pairs: PairSequence] RETURNS [Pair]; <> <<>> MinMaxSequence: PROC [pairs: PairSequence] RETURNS [Box]; <> <<>> NegateSequence: PROC [pairs: PairSequence]; <> <<>> ReverseSequence: PROC [src: PairSequence, dst: PairSequence ¬ NIL] RETURNS [PairSequence]; <> <> Length: PROC [p: Pair] RETURNS [REAL]; <> <<>> Square: PROC [p: Pair] RETURNS [REAL]; <> Distance: PROC [p1, p2: Pair] RETURNS [REAL]; <> SquareDistance: PROC [p1, p2: Pair] RETURNS [REAL]; <> <<>> SameLength: PROC [v1, v2: Pair] RETURNS [Pair]; <> <<>> SetVectorLength: PROC [v: Pair, length: REAL] RETURNS [Pair]; <> <> GetNear2dAccelerator: PROC [p0, p1: Pair] RETURNS [Triple]; <> <<>> NearestToSegment: PROC [p0, p1, q: Pair, acc: Triple ¬ [0, 0, 0]] RETURNS [NearSegment]; <> <> <<>> NearestToSequence: PROC [p: Pair, points: PairSequence] RETURNS [index: NAT]; <> <> Line: PROC [p0, p1: Pair] RETURNS [Triple]; <> <> <<>> DistanceToLine: PROC [p: Pair, line2d: Triple] RETURNS [REAL]; <> <<>> IntersectTwoLines: PROC [line0, line1: Triple] RETURNS [Pair]; <> <<>> TriangleArea: PROC [p0, p1, p2: Pair] RETURNS [REAL]; <> <> NatPairLerp: PROC [t: REAL, a, b: NatPair] RETURNS [Pair]; <> NatPairDistance: PROC [a, b: NatPair] RETURNS [REAL]; <> <> AnglesAgree: PROC [a0, a1: REAL] RETURNS [REAL]; <> AngleFromVector: PROC [v: Pair, degrees: BOOL ¬ FALSE] RETURNS [REAL]; <> END.