private Triangle extendOutside(Triangle t, Point p) {
if (p.pointLineTest(t.getA(), t.getB()) == Point.ONSEGMENT) {
Triangle dg = new Triangle(t.getA(), t.getB(), p);
Triangle hp = new Triangle(p, t.getB());
t.setB(p);
dg.setAbTriangle(t.getAbTriangle());
dg.getAbTriangle().switchneighbors(t, dg);
dg.setBcTriangle(hp);
hp.setAbTriangle(dg);
dg.setCanext(t);
t.setAbTriangle(dg);
hp.setBcTriangle(t.getBcTriangle());
hp.getBcTriangle().setCanext(hp);
hp.setCanext(t);
t.setBcTriangle(hp);
return dg;
}
Triangle ccT = extendcounterclock(t, p);
Triangle cT = extendclock(t, p);
ccT.setBcTriangle(cT);
cT.setCanext(ccT);
startTriangleHull = cT;
return cT.getAbTriangle();
}