mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-01 13:36:48 +08:00
Ref T268, elevation handling improvements
* utility functions * made storeAircraftSituation virtual and return Aviation::CAircraftSituation * coordinate toQString in deg/rad
This commit is contained in:
@@ -222,12 +222,12 @@ namespace BlackMisc
|
||||
return c;
|
||||
}
|
||||
|
||||
void CRemoteAircraftProvider::storeAircraftSituation(const CAircraftSituation &situation, bool allowTestOffset)
|
||||
CAircraftSituation CRemoteAircraftProvider::storeAircraftSituation(const CAircraftSituation &situation, bool allowTestOffset)
|
||||
{
|
||||
const CCallsign cs = situation.getCallsign();
|
||||
if (cs.isEmpty()) { return; }
|
||||
if (cs.isEmpty()) { return situation; }
|
||||
|
||||
// verify
|
||||
// testing
|
||||
if (CBuildConfig::isLocalDeveloperDebugBuild())
|
||||
{
|
||||
BLACK_VERIFY_X(situation.getTimeOffsetMs() > 0, Q_FUNC_INFO, "Missing offset");
|
||||
@@ -261,7 +261,7 @@ namespace BlackMisc
|
||||
{
|
||||
newSituationsList.push_frontKeepLatestFirstAdjustOffset(situationCorrected, true, IRemoteAircraftProvider::MaxSituationsPerCallsign);
|
||||
newSituationsList.setAdjustedSortHint(CAircraftSituationList::AdjustedTimestampLatestFirst);
|
||||
newSituationsList.transferElevationForward(); // transfer elevations
|
||||
newSituationsList.transferElevationForward(); // transfer elevations, will do nothing if elevations already exist
|
||||
|
||||
// unify all inbound ground information
|
||||
if (situation.hasInboundGroundDetails())
|
||||
@@ -296,6 +296,8 @@ namespace BlackMisc
|
||||
this->storeChange(change);
|
||||
|
||||
emit this->addedAircraftSituation(situationCorrected);
|
||||
|
||||
return situationCorrected;
|
||||
}
|
||||
|
||||
void CRemoteAircraftProvider::storeAircraftParts(const CCallsign &callsign, const CAircraftParts &parts, bool removeOutdated)
|
||||
|
||||
@@ -393,7 +393,7 @@ namespace BlackMisc
|
||||
//! Store an aircraft situation
|
||||
//! \remark latest situations are kept first
|
||||
//! \threadsafe
|
||||
void storeAircraftSituation(const Aviation::CAircraftSituation &situation, bool allowTestOffset = true);
|
||||
virtual Aviation::CAircraftSituation storeAircraftSituation(const Aviation::CAircraftSituation &situation, bool allowTestOffset = true);
|
||||
|
||||
//! Store an aircraft part
|
||||
//! \remark latest parts are kept first
|
||||
|
||||
@@ -362,6 +362,11 @@ namespace BlackMisc
|
||||
return this->provider()->requestElevation(reference, callsign);
|
||||
}
|
||||
|
||||
bool CSimulationEnvironmentAware::requestElevation(const CAircraftSituation &situation)
|
||||
{
|
||||
return this->requestElevation(situation, situation.getCallsign());
|
||||
}
|
||||
|
||||
QPair<int, int> CSimulationEnvironmentAware::getElevationsFoundMissed() const
|
||||
{
|
||||
if (!this->hasProvider()) { return QPair<int, int>(0, 0); }
|
||||
|
||||
@@ -229,6 +229,9 @@ namespace BlackMisc
|
||||
//! \copydoc ISimulationEnvironmentProvider::requestElevation
|
||||
bool requestElevation(const Geo::ICoordinateGeodetic &reference, const Aviation::CCallsign &callsign);
|
||||
|
||||
//! \copydoc ISimulationEnvironmentProvider::requestElevation
|
||||
bool requestElevation(const Aviation::CAircraftSituation &situation);
|
||||
|
||||
//! \copydoc ISimulationEnvironmentProvider::getElevationsFoundMissed
|
||||
QPair<int, int> getElevationsFoundMissed() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user