Fixes Always-Zero Lane Count Introduced in #3237
This commit is contained in:
parent
cd03877c90
commit
d2cd4fac2d
@ -4,6 +4,8 @@
|
|||||||
#include <boost/range/adaptor/transformed.hpp>
|
#include <boost/range/adaptor/transformed.hpp>
|
||||||
#include <boost/range/algorithm/find_if.hpp>
|
#include <boost/range/algorithm/find_if.hpp>
|
||||||
|
|
||||||
|
#include <boost/assert.hpp>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
@ -91,13 +93,13 @@ bool Intersection::valid() const
|
|||||||
operator[](0).angle < std::numeric_limits<double>::epsilon();
|
operator[](0).angle < std::numeric_limits<double>::epsilon();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::uint8_t Intersection::getHighestConnectedLaneCount(
|
std::uint8_t
|
||||||
const util::NodeBasedDynamicGraph &node_based_graph) const
|
Intersection::getHighestConnectedLaneCount(const util::NodeBasedDynamicGraph &graph) const
|
||||||
{
|
{
|
||||||
BOOST_ASSERT(valid()); // non empty()
|
BOOST_ASSERT(valid()); // non empty()
|
||||||
std::vector<ConnectedRoad> test;
|
|
||||||
const auto to_lane_count = [&](const ConnectedRoad &road) {
|
const auto to_lane_count = [&](const ConnectedRoad &road) {
|
||||||
return node_based_graph.GetEdgeData(road.eid).road_classification.GetNumberOfLanes();
|
return graph.GetEdgeData(road.eid).road_classification.GetNumberOfLanes();
|
||||||
};
|
};
|
||||||
|
|
||||||
// boost::range::transformed sadly does not work with lamdas since they are not copy
|
// boost::range::transformed sadly does not work with lamdas since they are not copy
|
||||||
@ -108,7 +110,7 @@ std::uint8_t Intersection::getHighestConnectedLaneCount(
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto view = test | boost::adaptors::transformed(to_lane_count);
|
const auto view = *this | boost::adaptors::transformed(to_lane_count);
|
||||||
boost::range::find_if(view, extract_maximal_value);
|
boost::range::find_if(view, extract_maximal_value);
|
||||||
return max_lanes;
|
return max_lanes;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user