sig
  type t = Gg.box3
  val dim : int
  type v = Gg.v3
  type p = Gg.p3
  type size = Gg.size3
  type m = Gg.m3
  val v : Gg.p3 -> Gg.size3 -> Gg.box3
  val v_mid : Gg.p3 -> Gg.size3 -> Gg.Box3.t
  val empty : Gg.box3
  val o : Gg.box3 -> Gg.p3
  val ox : Gg.box3 -> float
  val oy : Gg.box3 -> float
  val oz : Gg.box3 -> float
  val size : Gg.box3 -> Gg.size3
  val w : Gg.box3 -> float
  val h : Gg.box3 -> float
  val d : Gg.box3 -> float
  val zero : Gg.box3
  val unit : Gg.box3
  val of_pts : Gg.p3 -> Gg.p3 -> Gg.box3
  val min : Gg.box3 -> Gg.p3
  val minx : Gg.box3 -> float
  val miny : Gg.box3 -> float
  val minz : Gg.box3 -> float
  val max : Gg.box3 -> Gg.p3
  val maxx : Gg.box3 -> float
  val maxy : Gg.box3 -> float
  val maxz : Gg.box3 -> float
  val mid : Gg.box3 -> Gg.p3
  val midx : Gg.box3 -> float
  val midy : Gg.box3 -> float
  val midz : Gg.box3 -> float
  val area : Gg.box3 -> float
  val volume : Gg.box3 -> float
  val inter : Gg.box3 -> Gg.box3 -> Gg.box3
  val union : Gg.box3 -> Gg.box3 -> Gg.box3
  val inset : Gg.v3 -> Gg.box3 -> Gg.box3
  val round : Gg.box3 -> Gg.box3
  val move : Gg.v3 -> Gg.box3 -> Gg.box3
  val ltr : Gg.m3 -> Gg.box3 -> Gg.box3
  val tr : Gg.m4 -> Gg.box3 -> Gg.box3
  val map_f : (float -> float) -> Gg.box3 -> Gg.box3
  val is_empty : Gg.box3 -> bool
  val is_pt : Gg.box3 -> bool
  val is_plane : Gg.box3 -> bool
  val is_seg : Gg.box3 -> bool
  val isects : Gg.box3 -> Gg.box3 -> bool
  val subset : Gg.box3 -> Gg.box3 -> bool
  val mem : Gg.p3 -> Gg.box3 -> bool
  val equal : Gg.box3 -> Gg.box3 -> bool
  val equal_f : (float -> float -> bool) -> Gg.box3 -> Gg.box3 -> bool
  val compare : Gg.box3 -> Gg.box3 -> int
  val compare_f : (float -> float -> int) -> Gg.box3 -> Gg.box3 -> int
  val to_string : Gg.box3 -> string
  val pp : Format.formatter -> Gg.box3 -> unit
  val pp_f :
    (Format.formatter -> float -> unit) ->
    Format.formatter -> Gg.box3 -> unit
end