Functor Delaunay.Make

module Make: 
functor (S : CCC) -> Triangulation with module S = S
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