osrm-backend/include/engine/guidance/assemble_route.hpp

37 lines
1.0 KiB
C++
Raw Normal View History

2016-01-28 10:28:44 -05:00
#ifndef ENGINE_GUIDANCE_ASSEMBLE_ROUTE_HPP
#define ENGINE_GUIDANCE_ASSEMBLE_ROUTE_HPP
#include "engine/guidance/route_leg.hpp"
#include "engine/guidance/route.hpp"
#include <vector>
#include <algorithm>
namespace osrm
{
namespace engine
{
namespace guidance
{
2016-03-03 08:26:13 -05:00
inline Route assembleRoute(const std::vector<RouteLeg> &route_legs)
{
auto distance = std::accumulate(route_legs.begin(), route_legs.end(), 0.,
[](const double sum, const RouteLeg &leg)
{
return sum + leg.distance;
});
auto duration = std::accumulate(route_legs.begin(), route_legs.end(), 0.,
[](const double sum, const RouteLeg &leg)
{
return sum + leg.duration;
});
2016-01-28 10:28:44 -05:00
2016-03-03 08:26:13 -05:00
return Route{duration, distance};
}
2016-01-28 10:28:44 -05:00
} // namespace guidance
} // namespace engine
} // namespace osrm
#endif