package mlpost

  1. Overview
  2. Docs

Tools for overlay aware trees

This module provides a type to associate an interval of time to a value, to control its visibility

type interval =
  1. | Bet of int * int
    (*

    [|a,b|]

    *)
  2. | Bef of int
    (*

    ]|-oo,a|]

    *)
  3. | Aft of int
    (*

    [|a,+oo|[

    *)
  4. | Nev
    (*

    emptyset

    *)
  5. | Alw
    (*

    N

    *)

This type describes an interval of discrete points of time

val in_interval : int -> interval -> bool

test if an integer is in an interval

val min_interval : int -> interval -> int

The minimum between the integer argument and the beginning of the interval; returns the integer argument in the cases Nev and Alw

val max_interval : int -> interval -> int

The dual of min_interval

val min_tree : ('a -> interval) -> 'a t -> int

The first moment of the tree to appear, not considering Nev and Alw

val max_tree : ('a -> interval) -> 'a t -> int

The last moment of the tree to appear, not considering Nev and Alw

type 'a spec = (interval * 'a) list

A spec is a list of objects associated with a visibility interval

val assoq : int -> 'a spec -> 'a

returns the first element which is visible in the specification; raises Not_found if no element is visible

val max : ('a -> Num.t) -> ('b * 'a) list -> Num.t

given a function to compute a numeric from an 'a, and a list of objects ('b,'a), return the maximal numeric from that list; intended to be used with width and height functions for objects and with a 'a spec list

val set_pos : (Point.t -> 'a -> 'b) -> Point.t -> 'a spec -> 'b spec

Given a function to move objects of type 'a, return a function to move functions of type 'a spec