<> <> <> <> DIRECTORY SV2d; SVVector2d: CEDAR DEFINITIONS = BEGIN Point2d: TYPE = SV2d.Point2d; TrigLineSeg: TYPE = SV2d.TrigLineSeg; Vector2d: TYPE = SV2d.Vector2d; VectorFromAngle: PROC [angle: REAL] RETURNS [vector: Vector2d]; <> <> VectorPlusAngle: PROC [v: Vector2d, degrees: REAL] RETURNS [rotatedV: Vector2d]; AngleFromVector: PROC [v: Vector2d] RETURNS [position: REAL]; AngleCCWBetweenVectors: PROC [v1, v2: Vector2d] RETURNS [difference: REAL]; <> AngleCWBetweenVectors: PROC [v1, v2: Vector2d] RETURNS [difference: REAL]; <> SmallestAngleBetweenVectors: PROC [v1, v2: Vector2d] RETURNS [difference: REAL]; <> Add: PROC [v1, v2: Vector2d] RETURNS [v1PlusV2: Vector2d]; Sub: PROC [v1, v2: Vector2d] RETURNS [v1MinusV2: Vector2d]; Scale: PROC [v: Vector2d, s: REAL] RETURNS [vTimesS: Vector2d]; Normalize: PROC [v: Vector2d] RETURNS [normV: Vector2d]; Negate: PROC [v: Vector2d] RETURNS [negV: Vector2d]; ElementwiseProduct: PROC [v1, v2: Vector2d] RETURNS [v1Timesv2: Vector2d]; DotProduct: PROC [v1, v2: Vector2d] RETURNS [scalar: REAL]; Magnitude: PROC [v: Vector2d] RETURNS [mag: REAL]; Distance: PROC [p1, p2: Point2d] RETURNS [dist: REAL]; MagnitudeSquared: PROC [v: Vector2d] RETURNS [magSquared: REAL]; DistanceSquared: PROC [p1, p2: Point2d] RETURNS [distSquared: REAL]; VectorFromPoints: PROC [tail, head: Point2d] RETURNS [vector: Vector2d]; RightNormalOfTrigLineSeg: PROC [seg: TrigLineSeg] RETURNS [normal: Vector2d]; LeftNormalOfTrigLineSeg: PROC [seg: TrigLineSeg] RETURNS [normal: Vector2d]; END.