#pragma prototyped
#include "mem.h"
#include "site.h"
#include <math.h>
int siteidx;
Site *bottomsite;
static Freelist sfl;
static int nvertices;
void
siteinit()
{
freeinit(&sfl, sizeof (Site));
nvertices = 0;
}
Site *
getsite ()
{
return ((Site *) getfree(&sfl));
}
double
dist(Site *s, Site *t)
{
double ans;
double dx,dy;
dx = s->coord.x - t->coord.x;
dy = s->coord.y - t->coord.y;
ans = sqrt(dx*dx + dy*dy);
return ans;
}
void
makevertex(Site *v)
{
v -> sitenbr = nvertices;
nvertices += 1;
#ifdef STANDALONE
out_vertex(v);
#endif
}
void
deref(Site *v)
{
v -> refcnt -= 1;
if (v -> refcnt == 0 ) makefree(v, &sfl);
}
void
ref(Site *v)
{
v -> refcnt += 1;
}