Module Quat

type t = {
  1. w : float;
  2. v : Vec3.t;
}
val identity : t
val of_axis_angle : Vec3.t -> float -> t
val to_axis_angle : t -> Vec3.t * float
val mul : t -> t -> t
val conjugate : t -> t
val length : t -> float
val normalize : t -> t
val rotate : t -> Vec3.t -> Vec3.t
val to_mat3 : t -> Mat3.t
val to_euler_xyz : t -> float * float * float
val derivative : spin:Vec3.t -> t -> t
val integrate : spin:Vec3.t -> dt:float -> t -> t
val turned_by : spin:Vec3.t -> dt:float -> t -> t