<> <> <> <> <> GGAngle: CEDAR DEFINITIONS = BEGIN Normalize: PROC [anyRange: REAL] RETURNS [range180: REAL]; <> AsSlope: PROC [anyRange: REAL] RETURNS [pos180: REAL]; <> Add: PROC [position, increment: REAL] RETURNS [finalPosition: REAL]; <> ClockwiseAngle: PROC [fromPosition, toPosition: REAL] RETURNS [increment: REAL]; <> CounterClockwiseAngle: PROC [fromPosition, toPosition: REAL] RETURNS [increment: REAL]; <> <> ShortestDifference: PROC [position1, position2: REAL] RETURNS [pos1MinusPos2: REAL]; <> Scale: PROC [angle: REAL, scalar: REAL] RETURNS [angleTimesScalar: REAL]; <> ArcTan: PROC [numerator, denominator: REAL] RETURNS [degrees: REAL]; <> IsInCCWInterval: PROC [testPosition: REAL, fromPosition, toPosition: REAL] RETURNS [BOOL]; IsInCCWInterval2: PROC [testPosition: REAL, fromPosition, increment: REAL] RETURNS [BOOL]; <> <<>> AlmostParallel: PROC [pos1, pos2: REAL, epsilon: REAL] RETURNS [BOOL]; <> END.