From dee30f13a62b54fcf6d627c016ddadde140b0f73 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer <don@thegagnes.com> Date: Tue, 30 Jun 2020 15:30:33 -0700 Subject: [PATCH] Change in vehicle speed requires transect rebuild to recalc terrain max climb/descent rate based setup --- src/MissionManager/TransectStyleComplexItem.cc | 12 +++++++----- src/MissionManager/TransectStyleComplexItem.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/MissionManager/TransectStyleComplexItem.cc b/src/MissionManager/TransectStyleComplexItem.cc index 313b7e6..35b40ad 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<CoordInfo_t>& 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 09435bb..9882151 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();