mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 11:05:33 +08:00
refs #840, add support for interpolation hints
This commit is contained in:
committed by
Mathew Sutcliffe
parent
534b9fb09e
commit
46fafde7a0
@@ -16,6 +16,7 @@
|
||||
#include "blackmisc/interpolator.h"
|
||||
#include "blackmisc/simulation/aircraftmodellist.h"
|
||||
#include "blackmisc/simulation/airspaceaircraftsnapshot.h"
|
||||
#include "blackmisc/simulation/interpolationhints.h"
|
||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||
#include "blackmisc/pq/physicalquantity.h"
|
||||
#include "blackmisc/simplecommandparser.h"
|
||||
@@ -169,7 +170,7 @@ namespace BlackCore
|
||||
}
|
||||
}
|
||||
|
||||
bool CSimulatorCommon::setInitialAircraftSituation(CSimulatedAircraft &aircraft) const
|
||||
bool CSimulatorCommon::setInitialAircraftSituation(CSimulatedAircraft &aircraft)
|
||||
{
|
||||
if (!this->m_interpolator) { return false; }
|
||||
const CCallsign callsign(aircraft.getCallsign());
|
||||
@@ -179,7 +180,9 @@ namespace BlackCore
|
||||
// to avoid position jittering when displayed
|
||||
const qint64 time = QDateTime::currentMSecsSinceEpoch();
|
||||
IInterpolator::InterpolationStatus interpolationStatus;
|
||||
const CAircraftSituation as(m_interpolator->getInterpolatedSituation(callsign, time, aircraft.isVtol(), interpolationStatus));
|
||||
CInterpolationHints &hints = m_hints[aircraft.getCallsign()];
|
||||
hints.setVtolAircraft(aircraft.isVtol());
|
||||
const CAircraftSituation as(m_interpolator->getInterpolatedSituation(callsign, time, hints, interpolationStatus));
|
||||
if (interpolationStatus.didInterpolationSucceed())
|
||||
{
|
||||
aircraft.setSituation(as);
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "blackmisc/simulation/simulatorinfo.h"
|
||||
#include "blackmisc/simulation/simulatorplugininfo.h"
|
||||
#include "blackmisc/simulation/simulatorinternals.h"
|
||||
#include "blackmisc/simulation/interpolationhints.h"
|
||||
#include "blackmisc/weather/weathergridprovider.h"
|
||||
#include "blackmisc/pq/length.h"
|
||||
#include "blackmisc/pq/time.h"
|
||||
@@ -146,7 +147,7 @@ namespace BlackCore
|
||||
void resetAircraftFromProvider(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
|
||||
//! Override situation from current interpolator values, if any!
|
||||
bool setInitialAircraftSituation(BlackMisc::Simulation::CSimulatedAircraft &aircraft) const;
|
||||
bool setInitialAircraftSituation(BlackMisc::Simulation::CSimulatedAircraft &aircraft);
|
||||
|
||||
//! Set own model
|
||||
void reverseLookupAndUpdateOwnAircraftModel(const BlackMisc::Simulation::CAircraftModel &model);
|
||||
@@ -165,6 +166,7 @@ namespace BlackCore
|
||||
|
||||
// some optional functionality which can be used by the sims as needed
|
||||
BlackMisc::Simulation::CSimulatedAircraftList m_aircraftToAddAgainWhenRemoved; //!< add this model again when removed, normally used to change model
|
||||
QHash<BlackMisc::Aviation::CCallsign, BlackMisc::Simulation::CInterpolationHints> m_hints; //!< last ground elevation fetched
|
||||
|
||||
//! Lookup against DB data
|
||||
static BlackMisc::Simulation::CAircraftModel reverseLookupModel(const BlackMisc::Simulation::CAircraftModel &model);
|
||||
|
||||
Reference in New Issue
Block a user