10 #include <gtest/gtest.h>
23 TEST(Geometry, Line2DIntersect)
41 TEST(Geometry, Line2DAngle)
58 TEST(Geometry, Line3DAngle)
80 TEST(Geometry, Segment2DIntersect)
105 bool do_inter =
intersect(s1, s2, inter);
107 EXPECT_FALSE(do_inter);
116 bool do_inter =
intersect(s1, s2, inter);
119 EXPECT_FALSE(do_inter);
126 TPolygon3D p3d({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}});
136 inter.getSegment(test);
140 TPolygon3D p3d({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}});
180 inter.getPoint(test);
185 TEST(Geometry, IntersectionPlanePlane)
201 EXPECT_FALSE(
intersect(plane1, plane2, inter));
257 TEST(Geometry, PolygonConvexContainsPoint)
260 std::vector<TPoint2D> vs;
261 vs.emplace_back(-1.0, -1.0);
262 vs.emplace_back(0.0, 1.0);
263 vs.emplace_back(1.0, -1.0);
267 std::reverse(vs.begin(), vs.end());
281 TEST(Geometry, PolygonConcaveContainsPoint)
284 std::vector<TPoint2D> vs;
285 vs.emplace_back(-2.0, 3.0);
286 vs.emplace_back(2.0, 2.0);
287 vs.emplace_back(3.0, -4.0);
288 vs.emplace_back(0.1, -3.0);
289 vs.emplace_back(0.1, -0.1);
290 vs.emplace_back(-0.1, -0.1);
291 vs.emplace_back(-0.1, -3.0);
292 vs.emplace_back(-2.0, -2.0);
297 std::reverse(vs.begin(), vs.end());
304 const double default_val = 1e-5;
313 const auto l1 =
TLine2D({0.0, 0.0}, {1.0, 0.0});
314 const auto l2 =
TLine2D({0.0, 2.0}, {1.0, 2.0001});
330 std::vector<TPoint3D> pts = {
331 {0., 0., 0.}, {1., 0., 0.}, {1., 1., 0.}, {0., 1., 0.}};
335 std::vector<TPoint3D> pts = {
336 {0., 0., 0.}, {0., 0., 1.}, {0., 1., 1.}, {0., 1., 0.}};
340 std::vector<TPoint3D> pts = {
341 {0., 0., 0.}, {0., 0., 1.}, {0., 1., 1.}, {0.1, 1., 0.1}};
345 std::vector<TPoint3D> pts = {{5.56496063, -2.30508217, 29.53900000},
346 {5.87949871, 0.00000000, 29.53900000},
347 {13.50000000, 0.00000000, 0.00000000},
348 {12.50465807, -7.29433126, 0.00000000}};
355 const auto r1_xmin = -1.0, r1_xmax = 1.0, r1_ymin = -1.0, r1_ymax = 1.0;
356 const auto r2_xmin = -2.0, r2_xmax = 2.0, r2_ymin = -3.0, r2_ymax = 3.0;
360 using tst_set_t = std::array<double, 4>;
363 const std::vector<tst_set_t> tsts = {
364 {0, 0, 0.0_deg, 1}, {3.1, 0, 0.0_deg, 0},
365 {-3.1, 0, 0.0_deg, 0}, {2.9, 0, 0.0_deg, 1},
366 {-2.9, 0, 0.0_deg, 1}, {0, 4.1, 0.0_deg, 0},
367 {0, 3.9, 0.0_deg, 1}, {0, -4.1, 0.0_deg, 0},
368 {0, -3.9, 0.0_deg, 1}, {3.1, 0, 0.0_deg, 0},
369 {3.1, 0, 45.0_deg, 1}, {3.1, 0, -90.0_deg, 1}};
371 for (
const auto& t : tsts)
376 r1_xmin, r1_xmax, r1_ymin, r1_ymax, r2_xmin, r2_xmax, r2_ymin,
377 r2_ymax, p.x, p.y, p.phi),