private Triangle extendcounterclock(Triangle t, Point p) { t.setHalfplane(false); t.setC(p); t.circumcircle(); Triangle tca = t.getCaTriangle(); if (p.pointLineTest(tca.getA(), tca.getB()) >= Point.RIGHT) { Triangle nT = new Triangle(t.getA(), p); nT.setAbTriangle(t); t.setCanext(nT); nT.setCanext(tca); tca.setBcTriangle(nT); return nT; } return extendcounterclock(tca, p); }
private Triangle extendInside(Triangle t, Point p) { Triangle h1, h2; h1 = treatDegeneracyInside(t, p); if (h1 != null) return h1; h1 = new Triangle(t.getC(), t.getA(), p); h2 = new Triangle(t.getB(), t.getC(), p); t.setC(p); t.circumcircle(); h1.setAbTriangle(t.getCaTriangle()); h1.setBcTriangle(t); h1.setCanext(h2); h2.setAbTriangle(t.getBcTriangle()); h2.setBcTriangle(h1); h2.setCanext(t); h1.getAbTriangle().switchneighbors(t, h1); h2.getAbTriangle().switchneighbors(t, h2); t.setBcTriangle(h2); t.setCanext(h1); return t; }
private Triangle extendclock(Triangle t, Point p) { t.setHalfplane(false); t.setC(p); t.circumcircle(); Triangle tbc = t.getBcTriangle(); if (p.pointLineTest(tbc.getA(), tbc.getB()) >= Point.RIGHT) { Triangle nT = new Triangle(p, t.getB()); nT.setAbTriangle(t); t.setBcTriangle(nT); nT.setBcTriangle(tbc); tbc.setCanext(nT); return nT; } return extendclock(tbc, p); }