diff --git a/src/MissionManager/TransectStyleComplexItem.cc b/src/MissionManager/TransectStyleComplexItem.cc index 313b7e689ea8f1a9ed676533485d582083d29d71..35b40ad2d8245ff95953da0e59362f5dc3b615f2 100644 --- a/src/MissionManager/TransectStyleComplexItem.cc +++ b/src/MissionManager/TransectStyleComplexItem.cc @@ -327,8 +327,10 @@ double TransectStyleComplexItem::greatestDistanceTo(const QGeoCoordinate &other) void TransectStyleComplexItem::setMissionFlightStatus(MissionController::MissionFlightStatus_t& missionFlightStatus) { ComplexMissionItem::setMissionFlightStatus(missionFlightStatus); - if (!qFuzzyCompare(_cruiseSpeed, missionFlightStatus.vehicleSpeed)) { - _cruiseSpeed = missionFlightStatus.vehicleSpeed; + if (!qFuzzyCompare(_vehicleSpeed, missionFlightStatus.vehicleSpeed)) { + _vehicleSpeed = missionFlightStatus.vehicleSpeed; + // Vehicle speed change affects max climb/descent rates calcs for terrain so we need to re-adjust + _rebuildTransects(); emit timeBetweenShotsChanged(); } } @@ -707,9 +709,9 @@ int TransectStyleComplexItem::_maxPathHeight(const TerrainPathQuery::PathHeightI void TransectStyleComplexItem::_adjustForMaxRates(QList& transect) { - double maxClimbRate = _terrainAdjustMaxClimbRateFact.rawValue().toDouble(); - double maxDescentRate = _terrainAdjustMaxDescentRateFact.rawValue().toDouble(); - double flightSpeed = _missionFlightStatus.vehicleSpeed; + double maxClimbRate = _terrainAdjustMaxClimbRateFact.rawValue().toDouble(); + double maxDescentRate = _terrainAdjustMaxDescentRateFact.rawValue().toDouble(); + double flightSpeed = _vehicleSpeed; if (qIsNaN(flightSpeed) || (maxClimbRate == 0 && maxDescentRate == 0)) { if (qIsNaN(flightSpeed)) { diff --git a/src/MissionManager/TransectStyleComplexItem.h b/src/MissionManager/TransectStyleComplexItem.h index 09435bb30dceea853772d50f558045a585fdbe38..9882151563b434063b0393aca27b3632e592cae3 100644 --- a/src/MissionManager/TransectStyleComplexItem.h +++ b/src/MissionManager/TransectStyleComplexItem.h @@ -185,7 +185,7 @@ protected: double _complexDistance = qQNaN(); int _cameraShots = 0; double _timeBetweenShots = 0; - double _cruiseSpeed = 0; + double _vehicleSpeed = 5; CameraCalc _cameraCalc; bool _followTerrain = false; double _minAMSLAltitude = qQNaN();