Delaunator.jl

API Overview

The API consists of a set of types for static triangulations, and getting info about the triangulation.

t = Triangulation(points)
triangles(t) # get an iterator over the triangles 
triangles(t)
edges(t) # get an iterator over the edges 
neighbors(t, i) # neighbors of point i
hull(t) # get an iterator over the hull vertices
inhull(t, i)
dualcell(t, i) # get a description of the dual cell
dualcell(t, centers, i) # 


# drawing methods to translate from data to polots... 
hullpoly(t)
edgelines(t) 

# methods to get work with dualcell polys
p = dualcell(t, 1)
contains(p, pt)
segments(p)
clippedpoly(p, bbox)

There is also a set of types for more dynamic scenarios, where you may not want all the computed information for speed.

bt, cdata = basictriangulation(points; [maxpoints=Integer]) # initialize data structures 
bt, cdata = update!(bt, points, cdata) # after the points have been changed, may incur allocations
h = gethull(bt, cdata)
index = index_halfedges(bt, cdata)

Planned implementations

# cell diagram methods
cells(t, bbox) #  get an iterator over the nearest point / voronoi cells given the bounding box
bd = celldiagram(t [, centers]; [margin=0.05, boundingbox=mar()])
cellarea(t, i, [bbox]) # get cell area given bbox 
cellneighbors(t, i, [bbox]) # get cell neighbors given bbox 

# searching methods
nearestpoint(t, p)
findtriangle(t, p)