type t = {dx:float; dy:float; dz:float} val dotproduct : t -> t -> float val between : Point.t -> Point.t -> t val opposite : t -> t val point_along: Point.t -> t -> float -> Point.t val product: t -> t -> t val length : t -> float val length2 : t -> float val normalize : t -> t val scale : t -> float -> t val sub : t -> t -> t