45 enum {ANN_LO=0, ANN_HI=1};
46 enum {ANN_IN=0, ANN_OUT=1};
48 enum ANNerr {ANNwarn = 0, ANNabort = 1};
58 extern int ANNmaxPtsVisited;
59 extern int ANNptsVisited;
100 { lo = annAllocPt(dd, l); hi = annAllocPt(dd, h); }
105 { lo = annCopyPt(dd, r.lo); hi = annCopyPt(dd, r.hi); }
111 { lo = annCopyPt(dd, l); hi = annCopyPt(dd, h); }
114 { annDeallocPt(lo); annDeallocPt(hi); }
116 ANNbool inside(
int dim, ANNpoint p);
139 { cd = 0; cv = 0; sd = 0; }
145 { cd = cdd; cv = cvv; sd = sdd; }
147 ANNbool in(ANNpoint q)
const
148 {
return (ANNbool) ((q[cd] - cv)*sd >= 0); }
150 ANNbool out(ANNpoint q)
const
151 {
return (ANNbool) ((q[cd] - cv)*sd < 0); }
153 ANNdist dist(ANNpoint q)
const
154 {
return (ANNdist) ANN_POW(q[cd] - cv); }
156 void setLowerBound(
int d, ANNpoint p)
157 { cd = d; cv = p[d]; sd = +1; }
159 void setUpperBound(
int d, ANNpoint p)
160 { cd = d; cv = p[d]; sd = -1; }
162 void project(ANNpoint &q)
163 {
if (out(q)) q[cd] = cv; }