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 #include "CurveIntersection.h" | |
8 #include "Intersection_Tests.h" | |
9 #include "QuadraticIntersection_TestData.h" | |
10 | |
11 static const Quadratic testSet[] = { | |
12 // data for oneOffTest | |
13 {{8.0000000000000071, 8.0000000000000071}, | |
14 {8.7289570079366854, 8.7289570079366889}, | |
15 {9.3914917259458743, 9.0593802763083691}}, | |
16 {{8.0000000000000142, 8.0000000000000142}, | |
17 {8.1250000000000107, 8.1250000000000071}, | |
18 {8.2500000000000071, 8.2187500000000053}}, | |
19 // data for oneAtEndTest | |
20 {{0.91292418204644155, 0.41931201426549197}, | |
21 {0.70491388044579517, 0.64754305977710236}, | |
22 {0, 1 }}, | |
23 {{0.21875, 0.765625 }, | |
24 {0.125, 0.875 }, | |
25 {0, 1 }} | |
26 }; | |
27 | |
28 static void oneAtEndTest() { | |
29 const Quadratic& quad1 = testSet[2]; | |
30 const Quadratic& quad2 = testSet[3]; | |
31 double minT = 0; | |
32 double maxT = 1; | |
33 bezier_clip(quad1, quad2, minT, maxT); | |
34 } | |
35 | |
36 | |
37 static void oneOffTest() { | |
38 const Quadratic& quad1 = testSet[0]; | |
39 const Quadratic& quad2 = testSet[1]; | |
40 double minT = 0; | |
41 double maxT = 1; | |
42 bezier_clip(quad1, quad2, minT, maxT); | |
43 } | |
44 | |
45 static void standardTestCases() { | |
46 for (size_t index = 0; index < quadraticTests_count; ++index) { | |
47 const Quadratic& quad1 = quadraticTests[index][0]; | |
48 const Quadratic& quad2 = quadraticTests[index][1]; | |
49 Quadratic reduce1, reduce2; | |
50 int order1 = reduceOrder(quad1, reduce1, kReduceOrder_TreatAsFill); | |
51 int order2 = reduceOrder(quad2, reduce2, kReduceOrder_TreatAsFill); | |
52 if (order1 < 3) { | |
53 SkDebugf("%s [%d] quad1 order=%d\n", __FUNCTION__, (int)index, order
1); | |
54 } | |
55 if (order2 < 3) { | |
56 SkDebugf("%s [%d] quad2 order=%d\n", __FUNCTION__, (int)index, order
2); | |
57 } | |
58 if (order1 == 3 && order2 == 3) { | |
59 double minT = 0; | |
60 double maxT = 1; | |
61 bezier_clip(reduce1, reduce2, minT, maxT); | |
62 } | |
63 } | |
64 } | |
65 | |
66 void QuadraticBezierClip_Test() { | |
67 oneAtEndTest(); | |
68 oneOffTest(); | |
69 standardTestCases(); | |
70 } | |
OLD | NEW |