OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright 2012 Google Inc. |
| 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. |
| 6 */ |
| 7 |
| 8 #include "PathOpsQuadIntersectionTestData.h" |
| 9 |
| 10 const SkDQuad quadraticPoints[] = { |
| 11 {{{0, 0}, {1, 0}, {0, 0}}}, |
| 12 {{{0, 0}, {0, 1}, {0, 0}}}, |
| 13 {{{0, 0}, {1, 1}, {0, 0}}}, |
| 14 {{{1, 1}, {2, 2}, {1, 1}}}, |
| 15 }; |
| 16 |
| 17 const size_t quadraticPoints_count = sizeof(quadraticPoints) / sizeof(quadraticP
oints[0]); |
| 18 |
| 19 const SkDQuad quadraticLines[] = { |
| 20 {{{0, 0}, {0, 0}, {1, 0}}}, |
| 21 {{{1, 0}, {0, 0}, {0, 0}}}, |
| 22 {{{1, 0}, {2, 0}, {3, 0}}}, |
| 23 {{{0, 0}, {0, 0}, {0, 1}}}, |
| 24 {{{0, 1}, {0, 0}, {0, 0}}}, |
| 25 {{{0, 1}, {0, 2}, {0, 3}}}, |
| 26 {{{0, 0}, {0, 0}, {1, 1}}}, |
| 27 {{{1, 1}, {0, 0}, {0, 0}}}, |
| 28 {{{1, 1}, {2, 2}, {3, 3}}}, |
| 29 {{{1, 1}, {3, 3}, {3, 3}}}, |
| 30 {{{1, 1}, {1, 1}, {2, 2}}}, |
| 31 {{{1, 1}, {1, 1}, {3, 3}}}, |
| 32 {{{1, 1}, {2, 2}, {4, 4}}}, // no coincident |
| 33 {{{1, 1}, {3, 3}, {4, 4}}}, |
| 34 {{{1, 1}, {3, 3}, {2, 2}}}, |
| 35 {{{1, 1}, {4, 4}, {2, 2}}}, |
| 36 {{{1, 1}, {4, 4}, {3, 3}}}, |
| 37 {{{2, 2}, {1, 1}, {3, 3}}}, |
| 38 {{{2, 2}, {1, 1}, {4, 4}}}, |
| 39 {{{2, 2}, {3, 3}, {1, 1}}}, |
| 40 {{{2, 2}, {3, 3}, {4, 4}}}, |
| 41 {{{2, 2}, {4, 4}, {1, 1}}}, |
| 42 {{{2, 2}, {4, 4}, {3, 3}}}, |
| 43 }; |
| 44 |
| 45 const size_t quadraticLines_count = sizeof(quadraticLines) / sizeof(quadraticLin
es[0]); |
| 46 |
| 47 static const double F = FLT_EPSILON * 3; |
| 48 static const double H = FLT_EPSILON * 4; |
| 49 static const double J = FLT_EPSILON * 5; |
| 50 static const double K = FLT_EPSILON * 8; // INVESTIGATE: why are larger multipl
es necessary? |
| 51 |
| 52 const SkDQuad quadraticModEpsilonLines[] = { |
| 53 {{{0, F}, {0, 0}, {1, 0}}}, |
| 54 {{{0, 0}, {1, 0}, {0, F}}}, |
| 55 {{{1, 0}, {0, F}, {0, 0}}}, |
| 56 {{{1, H}, {2, 0}, {3, 0}}}, |
| 57 {{{F, 0}, {0, 0}, {0, 1}}}, |
| 58 {{{0, 0}, {0, 1}, {F, 0}}}, |
| 59 {{{0, 1}, {F, 0}, {0, 0}}}, |
| 60 {{{H, 1}, {0, 2}, {0, 3}}}, |
| 61 {{{0, F}, {0, 0}, {1, 1}}}, |
| 62 {{{0, 0}, {1, 1}, {F, 0}}}, |
| 63 {{{1, 1}, {F, 0}, {0, 0}}}, |
| 64 {{{1, 1+J}, {2, 2}, {3, 3}}}, |
| 65 {{{1, 1}, {3, 3}, {3+F, 3}}}, |
| 66 {{{1, 1}, {1+F, 1}, {2, 2}}}, |
| 67 {{{1, 1}, {2, 2}, {1, 1+F}}}, |
| 68 {{{1, 1}, {1, 1+F}, {3, 3}}}, |
| 69 {{{1+H, 1}, {2, 2}, {4, 4}}}, // no coincident |
| 70 {{{1, 1+K}, {3, 3}, {4, 4}}}, |
| 71 {{{1, 1}, {3+F, 3}, {2, 2}}}, |
| 72 {{{1, 1}, {4, 4+F}, {2, 2}}}, |
| 73 {{{1, 1}, {4, 4}, {3+F, 3}}}, |
| 74 {{{2, 2}, {1, 1}, {3, 3+F}}}, |
| 75 {{{2+F, 2}, {1, 1}, {4, 4}}}, |
| 76 {{{2, 2+F}, {3, 3}, {1, 1}}}, |
| 77 {{{2, 2}, {3+F, 3}, {4, 4}}}, |
| 78 {{{2, 2}, {4, 4+F}, {1, 1}}}, |
| 79 {{{2, 2}, {4, 4}, {3+F, 3}}}, |
| 80 }; |
| 81 |
| 82 const size_t quadraticModEpsilonLines_count = |
| 83 sizeof(quadraticModEpsilonLines) / sizeof(quadraticModEpsilonLines[0]); |
| 84 |
| 85 const SkDQuad quadraticTests[][2] = { |
| 86 { // one intersection |
| 87 {{{0, 0}, |
| 88 {0, 1}, |
| 89 {1, 1}}}, |
| 90 {{{0, 1}, |
| 91 {0, 0}, |
| 92 {1, 0}}} |
| 93 }, |
| 94 { // four intersections |
| 95 {{{1, 0}, |
| 96 {2, 6}, |
| 97 {3, 0}}}, |
| 98 {{{0, 1}, |
| 99 {6, 2}, |
| 100 {0, 3}}} |
| 101 } |
| 102 }; |
| 103 |
| 104 const size_t quadraticTests_count = sizeof(quadraticTests) / sizeof(quadraticTes
ts[0]); |
OLD | NEW |