示例#1
0
 /**
  * Try to map a node to all sides of this triangle that don't have a neighbor.
  *
  * @param t
  */
 public void mapTriangleToNodes(DelaunayTriangle t) {
   AdvancingFrontNode n;
   for (int i = 0; i < 3; i++) {
     if (t.neighbors[i] == null) {
       n = aFront.locatePoint(t.pointCW(t.points[i]));
       if (n != null) {
         n.triangle = t;
       }
     }
   }
 }
示例#2
0
  public void createAdvancingFront() {
    AdvancingFrontNode head, tail, middle;
    // Initial triangle
    DelaunayTriangle iTriangle = new DelaunayTriangle(_points.get(0), getTail(), getHead());
    addToList(iTriangle);

    head = new AdvancingFrontNode(iTriangle.points[1]);
    head.triangle = iTriangle;
    middle = new AdvancingFrontNode(iTriangle.points[0]);
    middle.triangle = iTriangle;
    tail = new AdvancingFrontNode(iTriangle.points[2]);

    aFront = new AdvancingFront(head, tail);
    aFront.addNode(middle);

    // TODO: I think it would be more intuitive if head is middles next and not previous
    //       so swap head and tail
    aFront.head.next = middle;
    middle.next = aFront.tail;
    middle.prev = aFront.head;
    aFront.tail.prev = middle;
  }