From 2510a728a74d6a5b3417275bf732f29871077e16 Mon Sep 17 00:00:00 2001 From: zzzzrrr Date: Wed, 5 Aug 2009 19:40:58 -0400 Subject: [PATCH] fixed AFront --- src/org/poly2tri/cdt/CDT.scala | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/org/poly2tri/cdt/CDT.scala b/src/org/poly2tri/cdt/CDT.scala index 78232ca..51651a2 100644 --- a/src/org/poly2tri/cdt/CDT.scala +++ b/src/org/poly2tri/cdt/CDT.scala @@ -261,6 +261,7 @@ class CDT(val points: List[Point], val segments: List[Segment], iTriangle: Trian val points = new ArrayBuffer[Point] var node = aFront.locate(point1) + val first = node while(node.point != point2) { points += node.point @@ -268,9 +269,13 @@ class CDT(val points: List[Point], val segments: List[Segment], iTriangle: Trian } // STEP 3: Triangulate empty areas. - triangulateEmpty(point1, point2, points) + val T = new ArrayBuffer[Triangle] + triangulate(points.toArray, List(point1, point2), T) - // TODO: Update AFront before pushing changes!!!!! + // Update advancing front + first.triangle = T.first + first.next = node + node.prev = first // TODO: Update Delauney Edge Pointers @@ -280,12 +285,6 @@ class CDT(val points: List[Point], val segments: List[Segment], iTriangle: Trian } - // Triangulate empty areas. - def triangulateEmpty(point1: Point, point2: Point, points: ArrayBuffer[Point]) { - val T = new ArrayBuffer[Triangle] - triangulate(points.toArray, List(point1, point2), T) - } - // Marc Vigo Anglada's triangulate pseudo-polygon algo private def triangulate(P: Array[Point], ab: List[Point], T: ArrayBuffer[Triangle]) {