2 #include <lanelet2_core/geometry/Area.h>
3 #include <lanelet2_core/geometry/Lanelet.h>
4 #include <lanelet2_core/primitives/Area.h>
5 #include <lanelet2_core/primitives/Lanelet.h>
6 #include <lanelet2_core/primitives/LineString.h>
7 #include <lanelet2_core/primitives/Point.h>
8 #include <lanelet2_core/primitives/Polygon.h>
16 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
17 #pragma GCC diagnostic ignored "-Wunused-variable"
20 #pragma GCC diagnostic ignored "-Wfloat-equal"
64 assert(
p.id() == pCopy.
id());
65 assert(
p.z() == pCopy.
z());
70 p.attributes()[
"type"] =
"point";
71 p.attributes()[
"pi"] = 3.14;
72 p.attributes()[
"velocity"] =
"5 kmh";
74 assert(
p.attribute(
"type") ==
"point");
75 assert(!!
p.attribute(
"pi").asDouble());
76 assert(
p.attribute(
"velocity").asVelocity() == 5_kmh);
80 assert(
p.attributeOr(
"nonexistent", -1) == -1);
81 assert(
p.attributeOr(
"type", 0) == 0);
82 assert(
p.attributeOr(
"velocity", 0_kmh) == 5_kmh);
90 assert(pConst.
z() == 2);
95 assert(pConst.
z() == 3);
100 assert(pConstRef.
z() == 3);
119 assert(p3d.
x() == 1);
120 assert(p3d.
y() == 2);
121 assert(p3d.
z() == 3);
129 assert(p3d.
z() == 4);
132 assert(pTwice.z() == 8);
136 Point2d p2d = utils::to2D(p3d);
142 assert(p3d.
x() == 3);
147 Point3d p3dNew = utils::to3D(p2d);
148 assert(p3dNew.
z() == p3d.
z());
162 assert(ls.size() == 3);
167 assert(ls.size() == 4);
169 assert(ls.size() == 3);
178 assert(ls.numSegments() >= 2);
180 assert(segment.first ==
p2);
181 assert(segment.second == p3);
186 assert(lsInv.
front() == p3);
188 assert(lsInv.
constData() == ls.constData());
193 assert(lsInvInv == ls);
194 assert(lsInvInv.
front() ==
p1);
200 assert(lsConst.
constData() == ls.constData());
205 assert(front2d == utils::to2D(
p1));
212 assert(p1Basic.x() ==
p1.x());
217 assert(lsBasic.front() == lsHybrid.
front());
229 assert(poly.size() == 3);
230 assert(poly.numSegments() == 3);
232 assert(lastSegment.first == p3);
233 assert(lastSegment.second ==
p1);
265 assert(centerline2 == centerline);
268 assert(centerline3 != centerline);
273 assert(centerline3 ==
lanelet.centerline());
275 assert(centerline3 !=
lanelet.centerline());
289 assert(polygon.
size() == 6);
290 assert(polygon[0] ==
lanelet.leftBound().front());
291 assert(polygon.
back() ==
lanelet.rightBound().front());
300 assert(
lanelet.regulatoryElements().empty());
316 area.setOuterBound(outer);
323 assert(area.innerBounds().empty());
330 assert(area.regulatoryElements().empty());
352 auto dP2Line3d = geometry::distance(point, lsHybrid);
354 assert(dP2Line3d > 2);
356 auto dP2Line2d = geometry::distance(utils::to2D(point), utils::to2D(lsHybrid));
357 assert(dP2Line2d == 2);
360 auto l3d = geometry::length(lsHybrid);
362 auto ar = geometry::area(utils::to2D(polyHybrid));
368 assert(pProj.y() == 2);
372 assert(arcCoordinates.
distance == 2);
373 assert(arcCoordinates.
length == 1);
383 assert(geometry::intersects(laneletBox, areaBox));
384 assert(!geometry::intersects(pointBox, lsBox));