23 std::vector<SharedPtr<Waypoint>> result;
25 std::vector<SharedPtr<Landmark>> landmarks = carla_map->GetLandmarksFromId(
GetSignId());
26 for (
auto& landmark : landmarks) {
28 if (validity._from_lane < validity._to_lane) {
29 for (
int lane_id = validity._from_lane; lane_id <= validity._to_lane; ++lane_id) {
30 if(lane_id == 0)
continue;
32 carla_map->GetWaypointXODR(
33 landmark->GetRoadId(), lane_id,
static_cast<float>(landmark->GetS())));
36 for (
int lane_id = validity._from_lane; lane_id >= validity._to_lane; --lane_id) {
37 if(lane_id == 0)
continue;
39 carla_map->GetWaypointXODR(
40 landmark->GetRoadId(), lane_id,
static_cast<float>(landmark->GetS())));
49 std::vector<SharedPtr<Waypoint>> result;
56 float min_x = -0.9f*box.
extent.
x;
57 float max_x = 0.9f*box.
extent.
x;
58 float current_x = min_x;
59 std::unordered_map<road::RoadId, std::unordered_set<road::LaneId>> road_lanes_map;
60 while (current_x < max_x) {
63 if (road_lanes_map[waypoint->GetRoadId()].count(waypoint->GetLaneId()) == 0) {
64 road_lanes_map[waypoint->GetRoadId()].insert(waypoint->GetLaneId());
65 result.emplace_back(waypoint);