Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Side by Side Diff: experimental/Intersection/ActiveEdge_Test.cpp

Issue 867213004: remove prototype pathops code (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | experimental/Intersection/AddTestOutput/main.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 #include "Simplify.h"
8
9 namespace UnitTest {
10
11 #include "EdgeWalker.cpp"
12
13 } // end of UnitTest namespace
14
15 #include "Intersection_Tests.h"
16
17 SkPoint leftRight[][4] = {
18 // equal length
19 {{10, 10}, {10, 50}, {20, 10}, {20, 50}},
20 {{10, 10}, {10, 50}, {10, 10}, {20, 50}},
21 {{10, 10}, {10, 50}, {20, 10}, {10, 50}},
22 // left top higher
23 {{10, 0}, {10, 50}, {20, 10}, {20, 50}},
24 {{10, 0}, {10, 50}, {10, 10}, {20, 50}},
25 {{10, 0}, {10, 50}, {20, 10}, {10, 50}},
26 {{10, 0}, {10, 50}, {20, 10}, {10 + 0.000001f, 40}},
27 // left top lower
28 {{10, 20}, {10, 50}, {20, 10}, {20, 50}},
29 {{10, 20}, {10, 50}, {10, 10}, {20, 50}},
30 {{10, 20}, {10, 50}, {20, 10}, {10, 50}},
31 {{10, 20}, {10, 50}, {20, 10}, {10 + 0.000001f, 40}},
32 {{10, 20}, {10, 50}, { 0, 0}, {50, 50}},
33 // left bottom higher
34 {{10, 10}, {10, 40}, {20, 10}, {20, 50}},
35 {{10, 10}, {10, 40}, {10, 10}, {20, 50}},
36 {{10, 10}, {10, 40}, {20, 10}, {10, 50}},
37 {{10, 10}, {10, 40}, {20, 10}, { 0 + 0.000001f, 70}},
38 // left bottom lower
39 {{10, 10}, {10, 60}, {20, 10}, {20, 50}},
40 {{10, 10}, {10, 60}, {10, 10}, {20, 50}},
41 {{10, 10}, {10, 60}, {20, 10}, {10 + 0.000001f, 50}},
42 {{10, 10}, {10, 60}, {20, 10}, {10 + 0.000001f, 40}},
43 {{10, 10}, {10, 60}, { 0, 0}, {20 + 0.000001f, 20}},
44 };
45
46 size_t leftRightCount = sizeof(leftRight) / sizeof(leftRight[0]);
47
48 // older code that worked mostly
49 static bool operator_less_than(const UnitTest::ActiveEdge& lh,
50 const UnitTest::ActiveEdge& rh) {
51 if ((rh.fAbove.fY - lh.fAbove.fY > lh.fBelow.fY - rh.fAbove.fY
52 && lh.fBelow.fY < rh.fBelow.fY)
53 || (lh.fAbove.fY - rh.fAbove.fY < rh.fBelow.fY - lh.fAbove.fY
54 && rh.fBelow.fY < lh.fBelow.fY)) {
55 const SkPoint& check = rh.fBelow.fY <= lh.fBelow.fY
56 && lh.fBelow != rh.fBelow ? rh.fBelow :
57 rh.fAbove;
58 return (check.fY - lh.fAbove.fY) * (lh.fBelow.fX - lh.fAbove.fX)
59 < (lh.fBelow.fY - lh.fAbove.fY) * (check.fX - lh.fAbove.fX);
60 }
61 const SkPoint& check = lh.fBelow.fY <= rh.fBelow.fY
62 && lh.fBelow != rh.fBelow ? lh.fBelow : lh.fAbove;
63 return (rh.fBelow.fY - rh.fAbove.fY) * (check.fX - rh.fAbove.fX)
64 < (check.fY - rh.fAbove.fY) * (rh.fBelow.fX - rh.fAbove.fX);
65 }
66
67
68 void ActiveEdge_Test() {
69 UnitTest::InEdge leftIn, rightIn;
70 UnitTest::ActiveEdge left, right;
71 left.fWorkEdge.fEdge = &leftIn;
72 right.fWorkEdge.fEdge = &rightIn;
73 for (size_t x = 0; x < leftRightCount; ++x) {
74 left.fAbove = leftRight[x][0];
75 left.fTangent = left.fBelow = leftRight[x][1];
76 right.fAbove = leftRight[x][2];
77 right.fTangent = right.fBelow = leftRight[x][3];
78 SkASSERT(left < right);
79 SkASSERT(operator_less_than(left, right));
80 SkASSERT(!(right < left));
81 SkASSERT(!operator_less_than(right, left));
82 }
83 }
OLDNEW
« no previous file with comments | « no previous file | experimental/Intersection/AddTestOutput/main.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698