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 "PathOpsExtendedTest.h" | 7 #include "PathOpsExtendedTest.h" |
8 #include "SkIntersections.h" | 8 #include "SkIntersections.h" |
9 #include "SkPathOpsLine.h" | 9 #include "SkPathOpsLine.h" |
10 #include "SkPathOpsQuad.h" | 10 #include "SkPathOpsQuad.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 intersections.intersect(quad, line); | 51 intersections.intersect(quad, line); |
52 result = intersections.used(); | 52 result = intersections.used(); |
53 } | 53 } |
54 return result; | 54 return result; |
55 } | 55 } |
56 | 56 |
57 static struct oneLineQuad { | 57 static struct oneLineQuad { |
58 SkDQuad quad; | 58 SkDQuad quad; |
59 SkDLine line; | 59 SkDLine line; |
60 } oneOffs[] = { | 60 } oneOffs[] = { |
| 61 {{{{973, 507}, {973, 508.24264526367187}, {972.12158203125, 509.121612548828
12}}}, |
| 62 {{{930, 467}, {973, 510}}}}, |
61 {{{{369.848602, 145.680267}, {382.360413, 121.298294}, {406.207703, 121.2982
94}}}, | 63 {{{{369.848602, 145.680267}, {382.360413, 121.298294}, {406.207703, 121.2982
94}}}, |
62 {{{406.207703, 121.298294}, {348.781738, 123.864815}}}} | 64 {{{406.207703, 121.298294}, {348.781738, 123.864815}}}} |
63 }; | 65 }; |
64 | 66 |
65 static size_t oneOffs_count = SK_ARRAY_COUNT(oneOffs); | 67 static size_t oneOffs_count = SK_ARRAY_COUNT(oneOffs); |
66 | 68 |
67 static void testOneOffs(skiatest::Reporter* reporter) { | 69 static void testOneOffs(skiatest::Reporter* reporter) { |
68 SkIntersections intersections; | |
69 bool flipped = false; | 70 bool flipped = false; |
70 for (size_t index = 0; index < oneOffs_count; ++index) { | 71 for (size_t index = 0; index < oneOffs_count; ++index) { |
71 const SkDQuad& quad = oneOffs[index].quad; | 72 const SkDQuad& quad = oneOffs[index].quad; |
72 const SkDLine& line = oneOffs[index].line; | 73 const SkDLine& line = oneOffs[index].line; |
| 74 SkIntersections intersections; |
73 int result = doIntersect(intersections, quad, line, flipped); | 75 int result = doIntersect(intersections, quad, line, flipped); |
74 for (int inner = 0; inner < result; ++inner) { | 76 for (int inner = 0; inner < result; ++inner) { |
75 double quadT = intersections[0][inner]; | 77 double quadT = intersections[0][inner]; |
76 SkDPoint quadXY = quad.xyAtT(quadT); | 78 SkDPoint quadXY = quad.xyAtT(quadT); |
77 double lineT = intersections[1][inner]; | 79 double lineT = intersections[1][inner]; |
78 SkDPoint lineXY = line.xyAtT(lineT); | 80 SkDPoint lineXY = line.xyAtT(lineT); |
79 REPORTER_ASSERT(reporter, quadXY.approximatelyEqual(lineXY)); | 81 REPORTER_ASSERT(reporter, quadXY.approximatelyEqual(lineXY)); |
80 } | 82 } |
81 } | 83 } |
82 } | 84 } |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 || !t1.approximatelyEqual(lineQuadTests[index].expected[1]))
) { | 124 || !t1.approximatelyEqual(lineQuadTests[index].expected[1]))
) { |
123 SkDebugf("%s t1=(%1.9g,%1.9g)\n", __FUNCTION__, t1.fX, t1.fY); | 125 SkDebugf("%s t1=(%1.9g,%1.9g)\n", __FUNCTION__, t1.fX, t1.fY); |
124 REPORTER_ASSERT(reporter, 0); | 126 REPORTER_ASSERT(reporter, 0); |
125 } | 127 } |
126 } | 128 } |
127 } | 129 } |
128 } | 130 } |
129 | 131 |
130 #include "TestClassDef.h" | 132 #include "TestClassDef.h" |
131 DEFINE_TESTCLASS_SHORT(PathOpsQuadLineIntersectionTest) | 133 DEFINE_TESTCLASS_SHORT(PathOpsQuadLineIntersectionTest) |
OLD | NEW |