Module Bsp

type 'a poly = {
  1. corners : (Vec3.t * bool) list;
  2. data : 'a;
}
type plane = Vec3.t * float
val plane_of : (Vec3.t * bool) list -> plane option
val split : plane -> (Vec3.t * bool) list -> (Vec3.t * bool) list * (Vec3.t * bool) list
type 'a t
val build : 'a poly list -> 'a t
val back_to_front : eye:Vec3.t -> 'a t -> 'a poly list
val size : 'a t -> int