Use rectified linear unit to prevent negative duration values

This commit is contained in:
Michael Krasnyk
2017-05-02 22:13:20 +02:00
committed by Patrick Niklaus
parent a9d3e61884
commit 334a7b50cd
3 changed files with 44 additions and 4 deletions
+4 -2
View File
@@ -223,9 +223,11 @@ inline std::vector<RouteStep> assembleSteps(const datafacade::BaseDataFacade &fa
// | |---------| source_weight
// | |---| target_weight
const EdgeWeight weight = target_weight - source_weight;
const EdgeWeight duration = target_duration - source_duration;
BOOST_ASSERT(weight >= 0);
BOOST_ASSERT(duration >= 0);
// use rectified linear unit function to avoid negative duration values
// due to flooring errors in phantom snapping
const EdgeWeight duration = std::max(0, target_duration - source_duration);
steps.push_back(RouteStep{source_node.name_id,
facade.GetNameForID(source_node.name_id).to_string(),