code doesn't abort but uses a line segment.
/* mark the strip of triangles from eps[0] to eps[1] */
if (!marktripath(ftrii, ltrii)) {
prerror("cannot find triangle path");
- abort();
+ /* a straight line is better than failing */
+ growops(2);
+ output->pn = 2;
+ ops[0] = eps[0], ops[1] = eps[1];
+ output->ps = ops;
+ return 0;
}
/* if endpoints in same triangle, use a single line */
return;
}
}
- abort();
+ prerror("triangulation failed");
}
else
loadtriangle(pnlps[0], pnlps[1], pnlps[2]);