# Module Delaunay.Int

    module Int: Triangulation  with module S = IntPoints

Delaunay triangulation with integer coordinates

    module S: Delaunay.CCC

    type triangulation

    val triangulate : S.point array -> triangulation

`triangulate a` computes the Delaunay triangulation of a set of points, given as an array `a`. If `N` is the number of points (that is `Array.length a`), then the running time is $O(N \log N)$ on the average and $O(N^2)$ on the worst-case. The space used is always $O(N)$.

    val iter : (S.point -> S.point -> unit) -> triangulation -> unit

`iter f t` iterates over all edges of the triangulation `t`. `f u v` is called once for each undirected edge `(u,v)`.

    val fold : (S.point -> S.point -> 'a -> 'a) ->
           triangulation -> 'a -> 'a

    val iter_triangles : (S.point -> S.point -> S.point -> unit) ->
           triangulation -> unit