pointSet.add(t.getA()); pointSet.add(t.getB()); pointSet.add(t.getC()); Integer i1 = pointMap.get(t.getA()); Integer i2 = pointMap.get(t.getB()); Integer i3 = pointMap.get(t.getC()); if (i1 == null || i2 == null || i3 == null) throw new RuntimeException("wrong triangulation inner bug - cant write as an SMF file!");
private static Triangle findnext1(Point p, Triangle v) { if (p.pointLineTest(v.getA(), v.getB()) == Point.RIGHT && !v.getAbTriangle().isHalfplane()) return v.getAbTriangle(); if (p.pointLineTest(v.getB(), v.getC()) == Point.RIGHT && !v.getBcTriangle().isHalfplane()) return v.getBcTriangle(); if (p.pointLineTest(v.getC(), v.getA()) == Point.RIGHT && !v.getCaTriangle().isHalfplane()) return v.getCaTriangle(); if (p.pointLineTest(v.getA(), v.getB()) == Point.RIGHT) return v.getAbTriangle(); if (p.pointLineTest(v.getB(), v.getC()) == Point.RIGHT) return v.getBcTriangle(); if (p.pointLineTest(v.getC(), v.getA()) == Point.RIGHT) return v.getCaTriangle(); return null; }
private Triangle treatDegeneracyInside(Triangle t, Point p) { if (t.getAbTriangle().isHalfplane() && p.pointLineTest(t.getB(), t.getA()) == Point.ONSEGMENT) return extendOutside(t.getAbTriangle(), p); if (t.getBcTriangle().isHalfplane() && p.pointLineTest(t.getC(), t.getB()) == Point.ONSEGMENT) return extendOutside(t.getBcTriangle(), p); if (t.getCaTriangle().isHalfplane() && p.pointLineTest(t.getA(), t.getC()) == Point.ONSEGMENT) return extendOutside(t.getCaTriangle(), p); return null; }
Point point1 = tmpTriangle.getA(); Point point2 = tmpTriangle.getB(); Point point3 = tmpTriangle.getC();
Triangle v; t.setMc(mc); if (u.isHalfplane() || !u.circumcircleContains(t.getC())) return; v = new Triangle(u.getB(), t.getB(), t.getC()); v.setAbTriangle(u.getBcTriangle()); t.setAbTriangle(u.getAbTriangle()); } else if (t.getA() == u.getB()) { v = new Triangle(u.getC(), t.getB(), t.getC()); v.setAbTriangle(u.getCaTriangle()); t.setAbTriangle(u.getBcTriangle()); } else if (t.getA() == u.getC()) { v = new Triangle(u.getA(), t.getB(), t.getC()); v.setAbTriangle(u.getAbTriangle()); t.setAbTriangle(u.getCaTriangle());
public boolean fallInsideCircumcircle(Point[] arrayPoints) { boolean isInside = false; Point p1 = this.getA(); Point p2 = this.getB(); Point p3 = this.getC(); int i = 0; while (!isInside && i < arrayPoints.length) { Point p = arrayPoints[i]; if (!p.equals(p1) && !p.equals(p2) && !p.equals(p3)) { isInside = this.circumcircleContains(p); } i++; } return isInside; }
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 Point findDiagonal(Triangle triangle, Point point) { Point p1 = triangle.getA(); Point p2 = triangle.getB(); Point p3 = triangle.getC(); if ((p1.pointLineTest(point, p3) == Point.LEFT) && (p2.pointLineTest(point, p3) == Point.RIGHT)) return p3; if ((p3.pointLineTest(point, p2) == Point.LEFT) && (p1.pointLineTest(point, p2) == Point.RIGHT)) return p2; if ((p2.pointLineTest(point, p1) == Point.LEFT) && (p3.pointLineTest(point, p1) == Point.RIGHT)) return p1; return null; }
private void updateNeighbor(Triangle addedTriangle, Triangle deletedTriangle, Point pointToDelete) { Point delA = deletedTriangle.getA(); Point delB = deletedTriangle.getB(); Point delC = deletedTriangle.getC(); Point addA = addedTriangle.getA(); Point addB = addedTriangle.getB(); Point addC = addedTriangle.getC();
Point p3 = triangle.getC();
public static Polygon toJzyPolygon(Triangle triangle) { Coord3d c1 = toJzyCoord(triangle.getA()); Coord3d c2 = toJzyCoord(triangle.getB()); Coord3d c3 = toJzyCoord(triangle.getC()); Polygon polygon = new Polygon(); polygon.add(new org.jzy3d.plot3d.primitives.Point(c1)); polygon.add(new org.jzy3d.plot3d.primitives.Point(c2)); polygon.add(new org.jzy3d.plot3d.primitives.Point(c3)); return polygon; } }