19void voronoi(
Site *(*nextsite)(
void *context),
void *context) {
22 Point newintstar = {0};
24 Halfedge *lbnd, *rbnd, *llbnd, *rrbnd, *bisector;
32 newsite = nextsite(context);
37 if (newsite !=
NULL &&
39 (newsite->
coord.
y ==newintstar.
y && newsite->
coord.
x < newintstar.
x))) {
56 newsite = nextsite(context);
void endpoint(Edge *e, int lr, Site *s, arena_t *allocator)
Edge * gvbisect(Site *s1, Site *s2, arena_t *allocator)
Arithmetic helper functions.
bool PQempty(const pq_t *pq)
void PQdelete(pq_t *pq, Halfedge *he)
pq_t * PQinitialize(void)
Halfedge * PQextractmin(pq_t *pq)
void PQinsert(pq_t *pq, Halfedge *he, Site *v, double offset)
Site * hintersect(Halfedge *el1, Halfedge *el2, arena_t *allocator)
Halfedge * ELright(Halfedge *he)
void ELcleanup(el_state_t *st)
void ELinitialize(el_state_t *st)
void ELinsert(Halfedge *lb, Halfedge *new)
Site * rightreg(Halfedge *he)
Halfedge * ELleft(Halfedge *he)
Halfedge * ELleftbnd(el_state_t *st, Point *p)
void ELdelete(Halfedge *he)
Halfedge * HEcreate(el_state_t *st, Edge *e, char pm)
Site * leftreg(Halfedge *he)
static Agedge_t * top(edge_stack_t *sp)
type-generic dynamically expanding list
double ngdist(Site *s, Site *t)
arena_t allocated
outstanding dynamic allocations
void voronoi(Site *(*nextsite)(void *context), void *context)