My agentic slop goes here. Not intended for anyone else!
1(** Geographic vector module *)
2
3type t
4
5(** {2 Construction} *)
6
7val create_cartesian : dx:float -> dy:float -> t
8(** dx, dy in kilometers *)
9
10val create_polar : heading:float -> distance:float -> t
11(** heading in degrees, distance in km *)
12
13val between : Coord.t -> Coord.t -> t
14(** Vector from first to second point *)
15
16(** {2 Accessors} *)
17
18val dx : t -> float
19val dy : t -> float
20val heading : t -> float
21val distance : t -> float
22
23(** {2 Operations} *)
24
25val add : t -> t -> t
26val sub : t -> t -> t
27val scale : t -> float -> t
28val neg : t -> t
29val rotate : t -> float -> t
30(** Rotate by degrees *)
31
32(** {2 Application} *)
33
34val apply : Coord.t -> t -> Coord.t
35(** Apply vector to coordinate *)
36
37(** {2 Formatting} *)
38
39val to_string : t -> string