Improved way to get situation with altitude offset

This commit is contained in:
Klaus Basan
2018-08-23 01:45:42 +02:00
parent 4814178961
commit 1755463ec4
3 changed files with 12 additions and 4 deletions

View File

@@ -965,6 +965,14 @@ namespace BlackMisc
return alt;
}
CAircraftSituation CAircraftSituation::withAltitudeOffset(const CLength &offset) const
{
if (offset.isNull()) { return *this; }
CAircraftSituation copy(*this);
copy.addAltitudeOffset(offset);
return copy;
}
void CAircraftSituation::setPressureAltitude(const CAltitude &altitude)
{
Q_ASSERT(altitude.getAltitudeType() == CAltitude::PressureAltitude);

View File

@@ -392,6 +392,9 @@ namespace BlackMisc
//! Add offset to altitude
CAltitude addAltitudeOffset(const PhysicalQuantities::CLength &offset);
//! Situation with altitude offset
CAircraftSituation withAltitudeOffset(const PhysicalQuantities::CLength &offset) const;
//! Get pressure altitude
const CAltitude &getPressureAltitude() const { return m_pressureAltitude; }

View File

@@ -630,10 +630,7 @@ namespace BlackMisc
os = m_testOffset.value(cs);
}
if (os.isNull() || os.isZeroEpsilonConsidered()) { return situation; }
const CAltitude newAlt = situation.getAltitude().withOffset(os);
CAircraftSituation newSituation(situation);
newSituation.setAltitude(newAlt);
return newSituation;
return situation.withAltitudeOffset(os);
}
CStatusMessageList CRemoteAircraftProvider::getAircraftPartsHistory(const CCallsign &callsign) const