Ref T268, elevation handling improvements

* utility functions
* made storeAircraftSituation virtual and return Aviation::CAircraftSituation
* coordinate toQString in deg/rad
This commit is contained in:
Klaus Basan
2018-07-11 02:34:58 +02:00
parent 226abd0d38
commit a5acd0a1ec
13 changed files with 71 additions and 51 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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); }

View File

@@ -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;