#include "defs.h" /* chose routine for sort on nearest */ DPIN chosen(strt, prev) DPIN strt; PIN prev; { INT bdist, bx=0, by=0; L_INT xsum, ysum; REG DPIN dv; DPIN best, prepin; REG PIN pp; REG INT del; DPIN1 dtmp; PIN1 tmp; if (prev == 0) { bdist = 0; xsum = 0; ysum = 0; for (dv = strt; dv < &pinvec[npins]; dv++) { pp = dv->pinp; bdist++; xsum += pp->x; ysum += pp->y; } tmp->x = xsum / bdist; tmp->y = ysum / bdist; dtmp->pinp = tmp; prepin = dtmp; } best = 0; for (dv = strt; dv < &pinvec[npins]; dv++) { del = distance(prepin,dv); pp = dv->pinp; if (best) { if (prev) { if (del > bdist) continue; } else if (del < bdist) continue; if (del == bdist) { if (pp->x > bx) continue; if (pp->x == bx && pp->y > by) continue; } } best = dv; bdist = del; bx = pp->x; by = pp->y; } return(best); }