shape ops work in progress
authorcaryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 6 Jun 2012 11:52:28 +0000 (11:52 +0000)
committercaryclark@google.com <caryclark@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 6 Jun 2012 11:52:28 +0000 (11:52 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@4174 2bbb7eff-a529-9590-31e7-b0007b416f81

experimental/Intersection/Simplify.cpp
experimental/Intersection/SimplifyNew_Test.cpp

index f3c095e..0efe02a 100644 (file)
@@ -1063,17 +1063,17 @@ finish:
         int firstT = 0;
         int lastT = 0;
         int firstCoinT = 0;
-        SkScalar topY = fPts[0].fY;
+        SkPoint topPt = fPts[0];
         int count = fTs.count();
         int index;
         for (index = 1; index < count; ++index) {
             const Span& span = fTs[index];
-            double t = span.fT;
-            SkScalar yIntercept = t == 1 ? fPts[fVerb].fY : yAtT(t);
-            if (topY > yIntercept) {
-                topY = yIntercept;
+            const SkPoint& intercept = xyAtT(&span);
+            if (topPt.fY > intercept.fY || (topPt.fY == intercept.fY
+                    && topPt.fX > intercept.fX)) {
+                topPt = intercept;
                 firstT = lastT = firstCoinT = index;
-            } else if (topY == yIntercept) {
+            } else if (topPt == intercept) {
                 lastT = index;
                 if (span.fCoincident) {
                     firstCoinT = index;
index 9098f69..3ce8f05 100644 (file)
@@ -104,7 +104,7 @@ static void (*tests[])() = {
 
 static const size_t testCount = sizeof(tests) / sizeof(tests[0]);
 
-static void (*firstTest)() = 0;
+static void (*firstTest)() = testLine5;
 static bool skipAll = false;
 
 void SimplifyNew_Test() {