GCC Code Coverage Report | |||||||||||||||||||||
|
|||||||||||||||||||||
Line | Branch | Exec | Source |
1 |
#define BOOST_TEST_MODULE FCL_SIMPLE |
||
2 |
#include <boost/test/included/unit_test.hpp> |
||
3 |
|||
4 |
#include <hpp/fcl/internal/intersect.h> |
||
5 |
#include <hpp/fcl/collision.h> |
||
6 |
#include <hpp/fcl/BVH/BVH_model.h> |
||
7 |
#include "fcl_resources/config.h" |
||
8 |
#include <sstream> |
||
9 |
|||
10 |
using namespace hpp::fcl; |
||
11 |
|||
12 |
static FCL_REAL epsilon = 1e-6; |
||
13 |
|||
14 |
112 |
static bool approx(FCL_REAL x, FCL_REAL y) { return std::abs(x - y) < epsilon; } |
|
15 |
|||
16 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗ |
4 |
BOOST_AUTO_TEST_CASE(projection_test_line) { |
17 |
✓✗ | 2 |
Vec3f v1(0, 0, 0); |
18 |
✓✗ | 2 |
Vec3f v2(2, 0, 0); |
19 |
|||
20 |
✓✗ | 2 |
Vec3f p(1, 0, 0); |
21 |
✓✗ | 2 |
Project::ProjectResult res = Project::projectLine(v1, v2, p); |
22 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 3); |
23 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0)); |
24 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.5)); |
25 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.5)); |
26 |
|||
27 |
✓✗ | 2 |
p = Vec3f(-1, 0, 0); |
28 |
✓✗ | 2 |
res = Project::projectLine(v1, v2, p); |
29 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 1); |
30 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 1)); |
31 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1)); |
32 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
33 |
|||
34 |
✓✗ | 2 |
p = Vec3f(3, 0, 0); |
35 |
✓✗ | 2 |
res = Project::projectLine(v1, v2, p); |
36 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 2); |
37 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 1)); |
38 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
39 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1)); |
40 |
2 |
} |
|
41 |
|||
42 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗ |
4 |
BOOST_AUTO_TEST_CASE(projection_test_triangle) { |
43 |
✓✗ | 2 |
Vec3f v1(0, 0, 1); |
44 |
✓✗ | 2 |
Vec3f v2(0, 1, 0); |
45 |
✓✗ | 2 |
Vec3f v3(1, 0, 0); |
46 |
|||
47 |
✓✗ | 2 |
Vec3f p(1, 1, 1); |
48 |
✓✗ | 2 |
Project::ProjectResult res = Project::projectTriangle(v1, v2, v3, p); |
49 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 7); |
50 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 4 / 3.0)); |
51 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1 / 3.0)); |
52 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1 / 3.0)); |
53 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 1 / 3.0)); |
54 |
|||
55 |
✓✗ | 2 |
p = Vec3f(0, 0, 1.5); |
56 |
✓✗ | 2 |
res = Project::projectTriangle(v1, v2, v3, p); |
57 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 1); |
58 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
59 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1)); |
60 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
61 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
62 |
|||
63 |
✓✗ | 2 |
p = Vec3f(1.5, 0, 0); |
64 |
✓✗ | 2 |
res = Project::projectTriangle(v1, v2, v3, p); |
65 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 4); |
66 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
67 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
68 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
69 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 1)); |
70 |
|||
71 |
✓✗ | 2 |
p = Vec3f(0, 1.5, 0); |
72 |
✓✗ | 2 |
res = Project::projectTriangle(v1, v2, v3, p); |
73 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 2); |
74 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
75 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
76 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1)); |
77 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
78 |
|||
79 |
✓✗ | 2 |
p = Vec3f(1, 1, 0); |
80 |
✓✗ | 2 |
res = Project::projectTriangle(v1, v2, v3, p); |
81 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 6); |
82 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.5)); |
83 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
84 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.5)); |
85 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0.5)); |
86 |
|||
87 |
✓✗ | 2 |
p = Vec3f(1, 0, 1); |
88 |
✓✗ | 2 |
res = Project::projectTriangle(v1, v2, v3, p); |
89 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 5); |
90 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.5)); |
91 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.5)); |
92 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
93 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0.5)); |
94 |
|||
95 |
✓✗ | 2 |
p = Vec3f(0, 1, 1); |
96 |
✓✗ | 2 |
res = Project::projectTriangle(v1, v2, v3, p); |
97 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 3); |
98 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.5)); |
99 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.5)); |
100 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.5)); |
101 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
102 |
2 |
} |
|
103 |
|||
104 |
✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗✓✗ ✓✗ |
4 |
BOOST_AUTO_TEST_CASE(projection_test_tetrahedron) { |
105 |
✓✗ | 2 |
Vec3f v1(0, 0, 1); |
106 |
✓✗ | 2 |
Vec3f v2(0, 1, 0); |
107 |
✓✗ | 2 |
Vec3f v3(1, 0, 0); |
108 |
✓✗ | 2 |
Vec3f v4(1, 1, 1); |
109 |
|||
110 |
✓✗ | 2 |
Vec3f p(0.5, 0.5, 0.5); |
111 |
✓✗ | 2 |
Project::ProjectResult res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
112 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 15); |
113 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0)); |
114 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.25)); |
115 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.25)); |
116 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0.25)); |
117 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0.25)); |
118 |
|||
119 |
✓✗ | 2 |
p = Vec3f(0, 0, 0); |
120 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
121 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 7); |
122 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 1 / 3.0)); |
123 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1 / 3.0)); |
124 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1 / 3.0)); |
125 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 1 / 3.0)); |
126 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
127 |
|||
128 |
✓✗ | 2 |
p = Vec3f(0, 1, 1); |
129 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
130 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 11); |
131 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 1 / 3.0)); |
132 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1 / 3.0)); |
133 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1 / 3.0)); |
134 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
135 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 1 / 3.0)); |
136 |
|||
137 |
✓✗ | 2 |
p = Vec3f(1, 1, 0); |
138 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
139 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 14); |
140 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 1 / 3.0)); |
141 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
142 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1 / 3.0)); |
143 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 1 / 3.0)); |
144 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 1 / 3.0)); |
145 |
|||
146 |
✓✗ | 2 |
p = Vec3f(1, 0, 1); |
147 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
148 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 13); |
149 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 1 / 3.0)); |
150 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1 / 3.0)); |
151 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
152 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 1 / 3.0)); |
153 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 1 / 3.0)); |
154 |
|||
155 |
✓✗ | 2 |
p = Vec3f(1.5, 1.5, 1.5); |
156 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
157 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 8); |
158 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.75)); |
159 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
160 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
161 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
162 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 1)); |
163 |
|||
164 |
✓✗ | 2 |
p = Vec3f(1.5, -0.5, -0.5); |
165 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
166 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 4); |
167 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.75)); |
168 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
169 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
170 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 1)); |
171 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
172 |
|||
173 |
✓✗ | 2 |
p = Vec3f(-0.5, -0.5, 1.5); |
174 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
175 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 1); |
176 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.75)); |
177 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 1)); |
178 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
179 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
180 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
181 |
|||
182 |
✓✗ | 2 |
p = Vec3f(-0.5, 1.5, -0.5); |
183 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
184 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 2); |
185 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.75)); |
186 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
187 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 1)); |
188 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
189 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
190 |
|||
191 |
✓✗ | 2 |
p = Vec3f(0.5, -0.5, 0.5); |
192 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
193 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 5); |
194 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
195 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.5)); |
196 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
197 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0.5)); |
198 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
199 |
|||
200 |
✓✗ | 2 |
p = Vec3f(0.5, 1.5, 0.5); |
201 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
202 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 10); |
203 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
204 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
205 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.5)); |
206 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
207 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0.5)); |
208 |
|||
209 |
✓✗ | 2 |
p = Vec3f(1.5, 0.5, 0.5); |
210 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
211 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 12); |
212 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
213 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
214 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
215 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0.5)); |
216 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0.5)); |
217 |
|||
218 |
✓✗ | 2 |
p = Vec3f(-0.5, 0.5, 0.5); |
219 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
220 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 3); |
221 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
222 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.5)); |
223 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.5)); |
224 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
225 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
226 |
|||
227 |
✓✗ | 2 |
p = Vec3f(0.5, 0.5, 1.5); |
228 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
229 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 9); |
230 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
231 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0.5)); |
232 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0)); |
233 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0)); |
234 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0.5)); |
235 |
|||
236 |
✓✗ | 2 |
p = Vec3f(0.5, 0.5, -0.5); |
237 |
✓✗ | 2 |
res = Project::projectTetrahedra(v1, v2, v3, v4, p); |
238 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(res.encode == 6); |
239 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.sqr_distance, 0.25)); |
240 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[0], 0)); |
241 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[1], 0.5)); |
242 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[2], 0.5)); |
243 |
✓✗✓✗ ✓✗✓✗ ✓✗✗✓ |
2 |
BOOST_CHECK(approx(res.parameterization[3], 0)); |
244 |
2 |
} |
Generated by: GCOVR (Version 4.2) |