(****************************************************************************** ** BOX.sml ** sml ** ** Franklin Chen and Guy Blelloch ** The BOX signature used as part of the GEOMETRY signature ******************************************************************************) signature BOX = sig structure Point : POINT structure Number : NUMBER = Point.Number structure Vec : VEC = Point.Vec type box type t = box val == : t * t -> bool val != : t * t -> bool val toString : t -> string val translate : t * Vec.t -> t val pointIn : t -> Point.t -> Side.t val fromPoints : Point.t Sequence.seq -> t val fromCorners : Point.t * Point.t -> t (* Divide a region in half in longest dimension. *) val bisect : t -> t * t (* Divide a region in half in each dimension. *) val divide : t -> t Sequence.seq (* Maximum width in a dimension. *) val size : t -> Number.t val center : t -> Point.t val radius : t -> Number.t val intersection : t * t -> t option val toVec : t -> Vec.t end