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; }