Module type Gg.Box

module type Box = sig .. end
Implemented by all axis-aligned box types.

type t 
The type for boxes.
val dim : int
dim is the dimension of the boxes of type Gg.Box.t.
type v 
The type for Gg.Box.dim vectors.
type p 
The type for Gg.Box.dim points.
type size 
The type for Gg.Box.dim sizes.
type m 
The type for matrices representing linear transformations of Gg.Box.dim space.

Constructors, accessors and constants


val v : p -> size -> t
v o size is a box whose origin is o and size is size.
val v_mid : p -> size -> t
v_mid mid size is a box whose Gg.Box.mid point is mid and size is size.
val empty : t
empty is the empty box.
val o : t -> p
o b is the origin of b.
Raises Invalid_argument on Gg.Box.empty
val size : t -> size
size b is the size of b.
Raises Invalid_argument on Gg.Box.empty
val zero : t
zero is a box whose origin and size is zero.
val unit : t
unit is the unit box which extends from zero to one in all dimensions.
val of_pts : p -> p -> t
of_pts p p' is the smallest box whose space contains p and p'.

Functions


val min : t -> p
min b is the smallest point of b (its origin).
Raises Invalid_argument on Gg.Box.empty
val max : t -> p
max b is the greatest point of b (its size added to the origin).
Raises Invalid_argument on Gg.Box.empty
val mid : t -> p
mid b is the mid point between min and max.
Raises Invalid_argument on Gg.Box.empty
val area : t -> float
area b is the surface area of b.
val inter : t -> t -> t
inter b b' is a box whose space is the intersection of S(b) and S(b').
val union : t -> t -> t
union b b' is the smallest box whose space contains S(b) and S(b').
val inset : v -> t -> t
inset d b is b whose edges are inset in each dimension according to amounts in d. Negative values in d outset. If the resulting size is negative returns Gg.Box.empty. Returns Gg.Box.empty on Gg.Box.empty.
val round : t -> t
round b is the smallest box containing b with integer valued corners. Returns Gg.Box.empty on Gg.Box.empty.
val move : v -> t -> t
move d b is b translated by d. Returns Gg.Box.empty on Gg.Box.empty.
val ltr : m -> t -> t
ltr m b is the smallest box containing the corners of b transformed by m. Returns Gg.Box.empty on Gg.Box.empty.
val map_f : (float -> float) -> t -> t
map_f f b is the box whose origin and size are those of b with their components mapped by f. Returns Gg.Box.empty on Gg.Box.empty.

Predicates and comparisons


val is_empty : t -> bool
is_empty b is true iff b is Gg.Box.empty.
val is_pt : t -> bool
is_pt b is true iff b is not Gg.Box.empty and its size is equal to 0 in every dimension.
val isects : t -> t -> bool
isects b b' is not (is_empty (inter b b')).
val subset : t -> t -> bool
subset b b' is true iff S(b) is included in S(b').
val mem : p -> t -> bool
mem p b is true iff p is in S(b).
val equal : t -> t -> bool
equal b b' is b = b'.
val equal_f : (float -> float -> bool) -> t -> t -> bool
equal_f eq b b' tests b and b' like Gg.Box.equal but uses eq to test floating point values.
val compare : t -> t -> int
compare u v is Pervasives.compare u v.
val compare_f : (float -> float -> int) -> t -> t -> int
compare_f cmp b b' compares b and b' like Gg.Box.compare but uses cmp to compare floating point values.

Printers


val pp : Format.formatter -> t -> unit
pp ppf b prints a textual representation of b on ppf.
val pp_f : (Format.formatter -> float -> unit) -> Format.formatter -> t -> unit
pp_f pp_fl ppf b prints b like Gg.Box.pp but uses pp_fl to print floating point values.