include
lanelet2_examples
internal
ExampleHelpers.h
Go to the documentation of this file.
1
#include <
lanelet2_core/LaneletMap.h
>
2
#include <
lanelet2_core/primitives/BasicRegulatoryElements.h
>
3
#include <lanelet2_core/primitives/LineString.h>
4
5
namespace
lanelet
{
6
namespace
examples {
7
inline
LineString3d
getLineStringAtX
(
double
x) {
8
return
LineString3d
(
utils::getId
(), {
Point3d
{
utils::getId
(), x, 0, 0},
Point3d
{
utils::getId
(), x, 1, 0},
9
Point3d
{
utils::getId
(), x, 2, 0}});
10
}
11
12
inline
LineString3d
getLineStringAtY
(
double
y) {
13
return
LineString3d
(
utils::getId
(), {
Point3d
{
utils::getId
(), 0, y, 0},
Point3d
{
utils::getId
(), 1, y, 0},
14
Point3d
{
utils::getId
(), 2, y, 0}});
15
}
16
17
inline
Polygon3d
getAPolygon
() {
18
Point3d
p1
{
utils::getId
(), 0, 0, 0};
19
Point3d
p2
{
utils::getId
(), 2, 0, 0};
20
Point3d
p3{
utils::getId
(), 2, -2, 0};
21
return
Polygon3d
(
utils::getId
(), {
p1
,
p2
, p3});
22
}
23
24
inline
Area
getAnArea
() {
25
LineString3d
top =
examples::getLineStringAtY
(2);
26
LineString3d
right
=
examples::getLineStringAtX
(2).
invert
();
27
LineString3d
bottom =
examples::getLineStringAtY
(0).
invert
();
28
LineString3d
left
=
examples::getLineStringAtY
(0);
29
return
Area
(
utils::getId
(), {top, right, bottom, left});
30
}
31
32
inline
Lanelet
getALanelet
() {
33
LineString3d
left
=
examples::getLineStringAtY
(2);
34
LineString3d
right
=
examples::getLineStringAtY
(0);
35
return
Lanelet
(
utils::getId
(), left, right);
36
}
37
38
inline
RegulatoryElementPtr
getARegulatoryElement
() {
39
LineString3d
trafficLight =
examples::getLineStringAtX
(3);
40
return
TrafficLight::make
(
utils::getId
(), {}, {trafficLight});
41
}
42
43
inline
LaneletMap
getALaneletMap
() {
44
auto
area =
getAnArea
();
45
auto
lanelet
=
getALanelet
();
46
lanelet
.addRegulatoryElement(
getARegulatoryElement
());
47
return
std::move(*
utils::createMap
({
lanelet
}, {area}));
48
}
49
}
// namespace examples
50
}
// namespace lanelet
lanelet::utils::getId
Id getId()
lanelet::RegulatoryElementPtr
std::shared_ptr< RegulatoryElement > RegulatoryElementPtr
lanelet::TrafficLight::make
static Ptr make(Id id, const AttributeMap &attributes, const LineStringsOrPolygons3d &trafficLights, const Optional< LineString3d > &stopLine={})
lanelet::examples::getAPolygon
Polygon3d getAPolygon()
Definition:
ExampleHelpers.h:17
lanelet::Lanelet
lanelet
lanelet::examples::getALanelet
Lanelet getALanelet()
Definition:
ExampleHelpers.h:32
LaneletMap.h
lanelet::examples::getALaneletMap
LaneletMap getALaneletMap()
Definition:
ExampleHelpers.h:43
right
BasicPolygon3d right
left
BasicPolygon3d left
BasicRegulatoryElements.h
p2
BasicPoint p2
lanelet::examples::getARegulatoryElement
RegulatoryElementPtr getARegulatoryElement()
Definition:
ExampleHelpers.h:38
lanelet::LineString3d
lanelet::Point3d
lanelet::examples::getLineStringAtY
LineString3d getLineStringAtY(double y)
Definition:
ExampleHelpers.h:12
lanelet::Polygon3d
p1
BasicPoint p1
lanelet::examples::getAnArea
Area getAnArea()
Definition:
ExampleHelpers.h:24
lanelet::Area
lanelet::LineString3d::invert
LineString3d invert() const noexcept
lanelet::utils::createMap
LaneletMapUPtr createMap(const Points3d &fromPoints)
lanelet::examples::getLineStringAtX
LineString3d getLineStringAtX(double x)
Definition:
ExampleHelpers.h:7
lanelet::LaneletMap
lanelet2_examples
Author(s): Fabian Poggenhans
autogenerated on Tue Jun 6 2023 02:24:00