/** * Will insert a point in the polygon after given point * * @param a * @param b * @param p */ public void insertPointAfter(PolygonPoint a, PolygonPoint newPoint) { // Validate that int index = _points.indexOf(a); if (index != -1) { newPoint.setNext(a.getNext()); newPoint.setPrevious(a); a.getNext().setPrevious(newPoint); a.setNext(newPoint); _points.add(index + 1, newPoint); } else { throw new RuntimeException( "Tried to insert a point into a Polygon after a point not belonging to the Polygon"); } }
public void addPoints(List<PolygonPoint> list) { PolygonPoint first; for (PolygonPoint p : list) { p.setPrevious(_last); if (_last != null) { p.setNext(_last.getNext()); _last.setNext(p); } _last = p; _points.add(p); } first = (PolygonPoint) _points.get(0); _last.setNext(first); first.setPrevious(_last); }
public void removePoint(PolygonPoint p) { PolygonPoint next, prev; next = p.getNext(); prev = p.getPrevious(); prev.setNext(next); next.setPrevious(prev); _points.remove(p); }
/** * To create a polygon we need atleast 3 separate points * * @param p1 * @param p2 * @param p3 */ public Polygon(PolygonPoint p1, PolygonPoint p2, PolygonPoint p3) { p1._next = p2; p2._next = p3; p3._next = p1; p1._previous = p3; p2._previous = p1; p3._previous = p2; _points.add(p1); _points.add(p2); _points.add(p3); }
/** * Will add a point after the last point added * * @param p */ public void addPoint(PolygonPoint p) { p.setPrevious(_last); p.setNext(_last.getNext()); _last.setNext(p); _points.add(p); }