예제 #1
0
 /**
  * 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");
   }
 }
예제 #2
0
 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);
 }
예제 #3
0
  public void removePoint(PolygonPoint p) {
    PolygonPoint next, prev;

    next = p.getNext();
    prev = p.getPrevious();
    prev.setNext(next);
    next.setPrevious(prev);
    _points.remove(p);
  }
예제 #4
0
 /**
  * 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);
 }
예제 #5
0
 /**
  * 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);
 }