Module Ray

type t = private {
  1. origin : Vec3.t;
  2. direction : Vec3.t;
}
val make : Vec3.t -> Vec3.t -> t
val at : t -> float -> Vec3.t
val sphere : t -> (Vec3.t * float) -> (float * float) option
val plane : t -> (Vec3.t * float) -> float option
val triangle : t -> (Vec3.t * Vec3.t * Vec3.t) -> (float * float * float) option
val box : t -> (Vec3.t * Vec3.t) -> (float * float) option