hole->aperture = -hole->aperture;
for (i = 0; i < CVectorSize(group); i++) {
- double xy[2], dia;
+ double xy[2], dia, r;
CVectorGetElement(group, &hole, i);
tool = drill->aperture[abs(hole->aperture)];
xy[0] = hole->start_x; xy[1] = hole->start_y;
dia = tool->parameter[0];
+ /* Half a mil slop to decisively include points on boundary. */
+ r = dia/2 + 0.0005;
+
if (drill->aperture[biggest_tool]->parameter[0] < dia)
biggest_tool = abs(hole->aperture);
- if (CNearTreeFindInSphere(t, dia, 0, tmp, xy, 1) != 0) {
+ if (CNearTreeFindInSphere(t, r, 0, tmp, xy, 1) != 0) {
/* We should always should find at least one hole! */
fprintf(stderr, _("%s: fatal error searching holes\n"),
progname);
}
CNearTreeObjects(t, &holes);
+ if (!holes)
+ goto out;
+
for (i = 0; i < CVectorSize(holes); i++) {
gerbv_net_t *hole;
gerbv_image_delete_net(hole);
}
+out:
CNearTreeFree(&t);
return ret;
}
ret = EXIT_FAILURE;
out:
gerbv_destroy_project(gp);
- return 0;
+ return ret;
}