#pragma prototyped
#ifndef HEDGES_H
#define HEDGES_H
#include "site.h"
#include "edges.h"
typedef struct Halfedge {
struct Halfedge *ELleft, *ELright;
Edge *ELedge;
int ELrefcnt;
char ELpm;
Site *vertex;
double ystar;
struct Halfedge *PQnext;
} Halfedge;
extern Halfedge *ELleftend, *ELrightend;
extern void ELinitialize();
extern void ELcleanup();
extern int right_of(Halfedge*, Point*);
extern Site *hintersect(Halfedge*, Halfedge*);
extern Halfedge *HEcreate(Edge*, char);
extern void ELinsert(Halfedge *, Halfedge *);
extern Halfedge *ELleftbnd(Point*);
extern void ELdelete(Halfedge *);
extern Halfedge *ELleft(Halfedge*), *ELright(Halfedge*);
extern Halfedge *ELleftbnd(Point*);
extern Site *leftreg(Halfedge*), *rightreg(Halfedge*);
#endif