From 2ada830c5ba95d4ea23fde98d9d9b709db78a281 Mon Sep 17 00:00:00 2001 From: Ale Martinez Date: Fri, 14 Aug 2020 12:29:47 -0300 Subject: [PATCH] Fix generated distance for lap swims Fixes #3567 --- src/FileIO/FixLapSwim.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/FileIO/FixLapSwim.cpp b/src/FileIO/FixLapSwim.cpp index 4a3ddc169..b7508b7e3 100644 --- a/src/FileIO/FixLapSwim.cpp +++ b/src/FileIO/FixLapSwim.cpp @@ -201,6 +201,7 @@ FixLapSwim::postProcess(RideFile *ride, DataProcessorConfig *config=0, QString o if (length_duration > 0 && length_duration < 100*GarminHWM.toInt()) { QVector newRows; kph = 3600.0 * length_distance / p->number[durationIdx]; + double deltaDist = length_duration >= 1 ? length_distance / (length_duration - 1) : 0.0; if (length_distance == 0.0) interval++; // pauses mark laps for (int i = 0; i < length_duration; i++) { // recover previous data or create a new sample point, @@ -208,8 +209,8 @@ FixLapSwim::postProcess(RideFile *ride, DataProcessorConfig *config=0, QString o RideFilePoint pt = ptHash.value(last_time + i); pt.secs = last_time + i; pt.cad = cad; - pt.km = last_distance + (length_distance * i/length_duration); - pt.kph = kph; + pt.km = last_distance + i * deltaDist; + pt.kph = pt.secs > 0 ? kph : 0.0; pt.interval = interval; newRows << pt; }