comments
This commit is contained in:
parent
e4d500f451
commit
dc1d491c15
@ -107,25 +107,25 @@ LaneDataVector augmentMultiple(const std::size_t none_index,
|
|||||||
return std::make_pair(std::size_t{0}, std::size_t{0});
|
return std::make_pair(std::size_t{0}, std::size_t{0});
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
const auto intersection_range_first = intersection.begin() + range.first;
|
||||||
|
const auto intersection_range_end = intersection.begin() + range.second;
|
||||||
const auto allowed_in_range =
|
const auto allowed_in_range =
|
||||||
std::count_if(intersection.begin() + range.first,
|
std::count_if(intersection_range_first, intersection_range_end, [](const auto &road) {
|
||||||
intersection.begin() + range.second,
|
return road.entry_allowed;
|
||||||
[](const auto &road) { return road.entry_allowed; });
|
});
|
||||||
|
|
||||||
if (allowed_in_range > 1 && lane_data[none_index].to - lane_data[none_index].from >= 1)
|
if (allowed_in_range > 1 && lane_data[none_index].to - lane_data[none_index].from >= 1)
|
||||||
{
|
{
|
||||||
// check if there is a straight turn
|
// check if there is a straight turn
|
||||||
auto straight_itr = std::find_if(intersection.begin() + range.first,
|
auto straight_itr =
|
||||||
intersection.begin() + range.second,
|
std::find_if(intersection_range_first, intersection_range_end, [](const auto &road) {
|
||||||
[](const auto &road) {
|
return road.instruction.direction_modifier == DirectionModifier::Straight;
|
||||||
return road.instruction.direction_modifier ==
|
});
|
||||||
DirectionModifier::Straight;
|
|
||||||
});
|
|
||||||
|
|
||||||
// we have a straight turn?
|
// we have a straight turn?
|
||||||
if (straight_itr != intersection.begin() + range.second)
|
if (straight_itr != intersection_range_end)
|
||||||
{
|
{
|
||||||
for (auto itr = intersection.begin() + range.first; itr != straight_itr; ++itr)
|
for (auto itr = intersection_range_first; itr != straight_itr; ++itr)
|
||||||
{
|
{
|
||||||
lane_data.push_back({tag_by_modifier[itr->instruction.direction_modifier],
|
lane_data.push_back({tag_by_modifier[itr->instruction.direction_modifier],
|
||||||
lane_data[none_index].from,
|
lane_data[none_index].from,
|
||||||
@ -136,7 +136,7 @@ LaneDataVector augmentMultiple(const std::size_t none_index,
|
|||||||
lane_data[none_index].from,
|
lane_data[none_index].from,
|
||||||
lane_data[none_index].to,
|
lane_data[none_index].to,
|
||||||
false});
|
false});
|
||||||
for (auto itr = straight_itr + 1; itr != intersection.begin() + range.second; ++itr)
|
for (auto itr = straight_itr + 1; itr != intersection_range_end; ++itr)
|
||||||
{
|
{
|
||||||
lane_data.push_back({tag_by_modifier[itr->instruction.direction_modifier],
|
lane_data.push_back({tag_by_modifier[itr->instruction.direction_modifier],
|
||||||
lane_data[none_index].to,
|
lane_data[none_index].to,
|
||||||
@ -155,7 +155,6 @@ LaneDataVector augmentMultiple(const std::size_t none_index,
|
|||||||
{
|
{
|
||||||
if (intersection[intersection_index].entry_allowed)
|
if (intersection[intersection_index].entry_allowed)
|
||||||
{
|
{
|
||||||
// FIXME this probably can be only a subset of these turns here?
|
|
||||||
lane_data.push_back({tag_by_modifier[intersection[intersection_index]
|
lane_data.push_back({tag_by_modifier[intersection[intersection_index]
|
||||||
.instruction.direction_modifier],
|
.instruction.direction_modifier],
|
||||||
lane_data[none_index].from,
|
lane_data[none_index].from,
|
||||||
|
Loading…
Reference in New Issue
Block a user