• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "QuadraticIntersection_TestData.h"
9 
10 const Quadratic quadraticLines[] = {
11     {{0, 0}, {0, 0}, {1, 0}},
12     {{0, 0}, {1, 0}, {0, 0}},
13     {{1, 0}, {0, 0}, {0, 0}},
14     {{1, 0}, {2, 0}, {3, 0}},
15     {{0, 0}, {0, 0}, {0, 1}},
16     {{0, 0}, {0, 1}, {0, 0}},
17     {{0, 1}, {0, 0}, {0, 0}},
18     {{0, 1}, {0, 2}, {0, 3}},
19     {{0, 0}, {0, 0}, {1, 1}},
20     {{0, 0}, {1, 1}, {0, 0}},
21     {{1, 1}, {0, 0}, {0, 0}},
22     {{1, 1}, {2, 2}, {3, 3}},
23     {{1, 1}, {3, 3}, {3, 3}},
24     {{1, 1}, {1, 1}, {2, 2}},
25     {{1, 1}, {2, 2}, {1, 1}},
26     {{1, 1}, {1, 1}, {3, 3}},
27     {{1, 1}, {2, 2}, {4, 4}}, // no coincident
28     {{1, 1}, {3, 3}, {4, 4}},
29     {{1, 1}, {3, 3}, {2, 2}},
30     {{1, 1}, {4, 4}, {2, 2}},
31     {{1, 1}, {4, 4}, {3, 3}},
32     {{2, 2}, {1, 1}, {3, 3}},
33     {{2, 2}, {1, 1}, {4, 4}},
34     {{2, 2}, {3, 3}, {1, 1}},
35     {{2, 2}, {3, 3}, {4, 4}},
36     {{2, 2}, {4, 4}, {1, 1}},
37     {{2, 2}, {4, 4}, {3, 3}},
38 };
39 
40 const size_t quadraticLines_count = sizeof(quadraticLines) / sizeof(quadraticLines[0]);
41 
42 static const double F = PointEpsilon * 3;
43 static const double H = PointEpsilon * 4;
44 static const double J = PointEpsilon * 5;
45 static const double K = PointEpsilon * 8; // INVESTIGATE: why are larger multiples necessary?
46 
47 const Quadratic quadraticModEpsilonLines[] = {
48     {{0, F}, {0, 0}, {1, 0}},
49     {{0, 0}, {1, 0}, {0, F}},
50     {{1, 0}, {0, F}, {0, 0}},
51     {{1, H}, {2, 0}, {3, 0}},
52     {{F, 0}, {0, 0}, {0, 1}},
53     {{0, 0}, {0, 1}, {F, 0}},
54     {{0, 1}, {F, 0}, {0, 0}},
55     {{H, 1}, {0, 2}, {0, 3}},
56     {{0, F}, {0, 0}, {1, 1}},
57     {{0, 0}, {1, 1}, {F, 0}},
58     {{1, 1}, {F, 0}, {0, 0}},
59     {{1, 1+J}, {2, 2}, {3, 3}},
60     {{1, 1}, {3, 3}, {3+F, 3}},
61     {{1, 1}, {1+F, 1}, {2, 2}},
62     {{1, 1}, {2, 2}, {1, 1+F}},
63     {{1, 1}, {1, 1+F}, {3, 3}},
64     {{1+H, 1}, {2, 2}, {4, 4}}, // no coincident
65     {{1, 1+K}, {3, 3}, {4, 4}},
66     {{1, 1}, {3+F, 3}, {2, 2}},
67     {{1, 1}, {4, 4+F}, {2, 2}},
68     {{1, 1}, {4, 4}, {3+F, 3}},
69     {{2, 2}, {1, 1}, {3, 3+F}},
70     {{2+F, 2}, {1, 1}, {4, 4}},
71     {{2, 2+F}, {3, 3}, {1, 1}},
72     {{2, 2}, {3+F, 3}, {4, 4}},
73     {{2, 2}, {4, 4+F}, {1, 1}},
74     {{2, 2}, {4, 4}, {3+F, 3}},
75 };
76 
77 const size_t quadraticModEpsilonLines_count = sizeof(quadraticModEpsilonLines) / sizeof(quadraticModEpsilonLines[0]);
78 
79 const Quadratic quadraticTests[][2] = {
80     { // one intersection
81      {{0, 0},
82       {0, 1},
83       {1, 1}},
84      {{0, 1},
85       {0, 0},
86       {1, 0}}
87     },
88     { // four intersections
89      {{1, 0},
90       {2, 6},
91       {3, 0}},
92      {{0, 1},
93       {6, 2},
94       {0, 3}}
95     }
96 };
97 
98 const size_t quadraticTests_count = sizeof(quadraticTests) / sizeof(quadraticTests[0]);
99