Browse Source

Merge pull request #6395 from DonLakeFlyer/TerrainDrag

Update terrain alts when user drags mission item
QGC4.4
Don Gagne 7 years ago committed by GitHub
parent
commit
023d517a37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      src/MissionManager/SimpleMissionItem.cc

14
src/MissionManager/SimpleMissionItem.cc

@ -705,19 +705,17 @@ void SimpleMissionItem::_terrainAltChanged(void) @@ -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);
}
}
}

Loading…
Cancel
Save