module Make:

Generic Delaunay triangulation

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