| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2012 Google Inc. | 2  * Copyright 2012 Google Inc. | 
| 3  * | 3  * | 
| 4  * Use of this source code is governed by a BSD-style license that can be | 4  * Use of this source code is governed by a BSD-style license that can be | 
| 5  * found in the LICENSE file. | 5  * found in the LICENSE file. | 
| 6  */ | 6  */ | 
| 7 #include "PathOpsQuadIntersectionTestData.h" | 7 #include "PathOpsQuadIntersectionTestData.h" | 
| 8 #include "PathOpsTestCommon.h" | 8 #include "PathOpsTestCommon.h" | 
| 9 #include "SkIntersections.h" | 9 #include "SkIntersections.h" | 
| 10 #include "SkPathOpsRect.h" | 10 #include "SkPathOpsRect.h" | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 46                                 tt2, xy2.fX, xy2.fY); | 46                                 tt2, xy2.fX, xy2.fY); | 
| 47                         REPORTER_ASSERT(reporter, 0); | 47                         REPORTER_ASSERT(reporter, 0); | 
| 48                     } | 48                     } | 
| 49                 } | 49                 } | 
| 50             } | 50             } | 
| 51         } | 51         } | 
| 52     } | 52     } | 
| 53 } | 53 } | 
| 54 | 54 | 
| 55 static const SkDQuad testSet[] = { | 55 static const SkDQuad testSet[] = { | 
|  | 56 {{{-708.00779269310044, -154.36998607290101}, {-707.90560262312511, -154.3699860
     7290101}, {-707.8333433370193, -154.44224536635932}}}, | 
|  | 57 {{{-708.00779269310044, -154.61669472244046}, {-701.04513225634582, -128.8597073
     4043804}, {505.58447265625, -504.9130859375}}}, | 
|  | 58 | 
| 56 {{{164, -40}, {231.51681518554687, -40}, {279.25839233398438, 7.7416000366210938
     }}}, | 59 {{{164, -40}, {231.51681518554687, -40}, {279.25839233398438, 7.7416000366210938
     }}}, | 
| 57 {{{279.25839233398438, 7.7416000366210938}, {275.2164306640625, 3.69964003562927
     25}, {271.03286743164062, -5.3290705182007514e-015}}}, | 60 {{{279.25839233398438, 7.7416000366210938}, {275.2164306640625, 3.69964003562927
     25}, {271.03286743164062, -5.3290705182007514e-015}}}, | 
| 58 | 61 | 
| 59 {{{2.9999997378517067, 1.9737872594345709}, {2.9999997432230918, 1.9739647181863
     822}, {1.2414155459263587e-163, 5.2957833941332142e-315}}}, | 62 {{{2.9999997378517067, 1.9737872594345709}, {2.9999997432230918, 1.9739647181863
     822}, {1.2414155459263587e-163, 5.2957833941332142e-315}}}, | 
| 60 {{{2.9999047485265304, 1.9739164225694723}, {3.0000947268526112, 1.9738379076623
     633}, {0.61149411077591886, 0.0028382324376270418}}}, | 63 {{{2.9999047485265304, 1.9739164225694723}, {3.0000947268526112, 1.9738379076623
     633}, {0.61149411077591886, 0.0028382324376270418}}}, | 
| 61 | 64 | 
| 62     {{{2.9999996843656502, 1.9721416019045801}, {2.9999997725237835, 1.974979834
     3422071}, | 65     {{{2.9999996843656502, 1.9721416019045801}, {2.9999997725237835, 1.974979834
     3422071}, | 
| 63             {5.3039068214821359e-315, 8.9546185262775165e-307}}}, | 66             {5.3039068214821359e-315, 8.9546185262775165e-307}}}, | 
| 64     {{{2.9984791443874976, 1.974505741312242}, {2.9999992702127476, 1.9738772171
     479178}, | 67     {{{2.9984791443874976, 1.974505741312242}, {2.9999992702127476, 1.9738772171
     479178}, | 
| 65             {3.0015187977319759, 1.9732495027303418}}}, | 68             {3.0015187977319759, 1.9732495027303418}}}, | 
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 299 #if 0 | 302 #if 0 | 
| 300     {{{97.9337615966796875,100}, {88,112.94264984130859375}, {88,130}}}, | 303     {{{97.9337615966796875,100}, {88,112.94264984130859375}, {88,130}}}, | 
| 301     {{{88,130}, {88,124.80951690673828125}, {88.91983795166015625,120}}}, | 304     {{{88,130}, {88,124.80951690673828125}, {88.91983795166015625,120}}}, | 
| 302 #endif | 305 #endif | 
| 303     {{{369.850525, 145.675964}, {382.362915, 121.29287}, {406.211273, 121.29287}
     }}, | 306     {{{369.850525, 145.675964}, {382.362915, 121.29287}, {406.211273, 121.29287}
     }}, | 
| 304     {{{369.850525, 145.675964}, {382.362915, 121.29287}, {406.211273, 121.29287}
     }}, | 307     {{{369.850525, 145.675964}, {382.362915, 121.29287}, {406.211273, 121.29287}
     }}, | 
| 305     {{{8, 8}, {10, 10}, {8, -10}}}, | 308     {{{8, 8}, {10, 10}, {8, -10}}}, | 
| 306     {{{8, -10}, {10, 10}, {8, 8}}}, | 309     {{{8, -10}, {10, 10}, {8, 8}}}, | 
| 307 }; | 310 }; | 
| 308 | 311 | 
| 309 const size_t coincidentTestSetCount = SK_ARRAY_COUNT(coincidentTestSet); | 312 static const int coincidentTestSetCount = (int) SK_ARRAY_COUNT(coincidentTestSet
     ); | 
| 310 | 313 | 
| 311 static void coincidentTestOne(skiatest::Reporter* reporter, int test1, int test2
     ) { | 314 static void coincidentTestOne(skiatest::Reporter* reporter, int test1, int test2
     ) { | 
| 312     const SkDQuad& quad1 = coincidentTestSet[test1]; | 315     const SkDQuad& quad1 = coincidentTestSet[test1]; | 
| 313     SkASSERT(ValidQuad(quad1)); | 316     SkASSERT(ValidQuad(quad1)); | 
| 314     const SkDQuad& quad2 = coincidentTestSet[test2]; | 317     const SkDQuad& quad2 = coincidentTestSet[test2]; | 
| 315     SkASSERT(ValidQuad(quad2)); | 318     SkASSERT(ValidQuad(quad2)); | 
| 316     SkIntersections intersections2; | 319     SkIntersections intersections2; | 
| 317     intersections2.intersect(quad1, quad2); | 320     intersections2.intersect(quad1, quad2); | 
| 318     REPORTER_ASSERT(reporter, intersections2.coincidentUsed() == 2); | 321     REPORTER_ASSERT(reporter, intersections2.coincidentUsed() == 2); | 
| 319     REPORTER_ASSERT(reporter, intersections2.used() == 2); | 322     REPORTER_ASSERT(reporter, intersections2.used() == 2); | 
| 320     for (int pt = 0; pt < intersections2.coincidentUsed(); ++pt) { | 323     for (int pt = 0; pt < intersections2.coincidentUsed(); ++pt) { | 
| 321         double tt1 = intersections2[0][pt]; | 324         double tt1 = intersections2[0][pt]; | 
| 322         double tt2 = intersections2[1][pt]; | 325         double tt2 = intersections2[1][pt]; | 
| 323         SkDPoint pt1 = quad1.ptAtT(tt1); | 326         SkDPoint pt1 = quad1.ptAtT(tt1); | 
| 324         SkDPoint pt2 = quad2.ptAtT(tt2); | 327         SkDPoint pt2 = quad2.ptAtT(tt2); | 
| 325         REPORTER_ASSERT(reporter, pt1.approximatelyEqual(pt2)); | 328         REPORTER_ASSERT(reporter, pt1.approximatelyEqual(pt2)); | 
| 326     } | 329     } | 
| 327 } | 330 } | 
| 328 | 331 | 
| 329 static void coincidentTest(skiatest::Reporter* reporter) { | 332 static void coincidentTest(skiatest::Reporter* reporter) { | 
| 330     for (size_t testIndex = 0; testIndex < coincidentTestSetCount - 1; testIndex
      += 2) { | 333     for (int testIndex = 0; testIndex < coincidentTestSetCount - 1; testIndex +=
      2) { | 
| 331         coincidentTestOne(reporter, testIndex, testIndex + 1); | 334         coincidentTestOne(reporter, testIndex, testIndex + 1); | 
| 332     } | 335     } | 
| 333 } | 336 } | 
| 334 | 337 | 
| 335 DEF_TEST(PathOpsQuadIntersectionCoincidenceOneOff, reporter) { | 338 DEF_TEST(PathOpsQuadIntersectionCoincidenceOneOff, reporter) { | 
| 336     coincidentTestOne(reporter, 0, 1); | 339     coincidentTestOne(reporter, 0, 1); | 
| 337 } | 340 } | 
| 338 | 341 | 
| 339 static int floatSign(double x) { | 342 static int floatSign(double x) { | 
| 340     return x < 0 ? -1 : x > 0 ? 1 : 0; | 343     return x < 0 ? -1 : x > 0 ? 1 : 0; | 
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 499     intersectionFinder(0, 1); | 502     intersectionFinder(0, 1); | 
| 500 } | 503 } | 
| 501 | 504 | 
| 502 DEF_TEST(PathOpsQuadIntersection, reporter) { | 505 DEF_TEST(PathOpsQuadIntersection, reporter) { | 
| 503     oneOffTests(reporter); | 506     oneOffTests(reporter); | 
| 504     coincidentTest(reporter); | 507     coincidentTest(reporter); | 
| 505     standardTestCases(reporter); | 508     standardTestCases(reporter); | 
| 506     if (false) QuadraticIntersection_IntersectionFinder(); | 509     if (false) QuadraticIntersection_IntersectionFinder(); | 
| 507     if (false) QuadraticIntersection_PointFinder(); | 510     if (false) QuadraticIntersection_PointFinder(); | 
| 508 } | 511 } | 
| OLD | NEW | 
|---|