From 79dbbce891302b53e70f7581d64929c61eb8028f Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Mon, 30 Apr 2018 15:47:09 -0700 Subject: [PATCH] Update terrain alts when user drags mission item --- src/MissionManager/SimpleMissionItem.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/MissionManager/SimpleMissionItem.cc b/src/MissionManager/SimpleMissionItem.cc index 71a1fadbc..fd707e867 100644 --- a/src/MissionManager/SimpleMissionItem.cc +++ b/src/MissionManager/SimpleMissionItem.cc @@ -705,19 +705,17 @@ void SimpleMissionItem::_terrainAltChanged(void) return; } - if (!qIsNaN(_amslAltAboveTerrainFact.rawValue().toDouble())) { - // We already have terrain values set. Don't do it again to prevent dirty bit changing. - return; - } - if (qIsNaN(terrainAltitude())) { // Set NaNs to signal we are waiting on terrain data _missionItem._param7Fact.setRawValue(qQNaN()); _amslAltAboveTerrainFact.setRawValue(qQNaN()); } else { - double aboveTerrain = terrainAltitude() + _altitudeFact.rawValue().toDouble(); - _missionItem._param7Fact.setRawValue(aboveTerrain); - _amslAltAboveTerrainFact.setRawValue(aboveTerrain); + double newAboveTerrain = terrainAltitude() + _altitudeFact.rawValue().toDouble(); + double oldAboveTerrain = _amslAltAboveTerrainFact.rawValue().toDouble(); + if (qIsNaN(oldAboveTerrain) || !qFuzzyCompare(newAboveTerrain, oldAboveTerrain)) { + _missionItem._param7Fact.setRawValue(newAboveTerrain); + _amslAltAboveTerrainFact.setRawValue(newAboveTerrain); + } } } -- 2.22.0