refs #863 Each aircraft gets its own interpolator instance,

so each one can cache calculations from one frame to the next.
The recent situations and parts are members of the interpolator.
This commit is contained in:
Mathew Sutcliffe
2017-02-05 15:54:39 +00:00
parent 2181702c5c
commit a167cc8e43
17 changed files with 108 additions and 87 deletions

View File

@@ -16,6 +16,7 @@
#include "terrainprobe.h"
#include "blackmisc/aviation/aircraftsituationlist.h"
#include "blackmisc/aviation/aircraftpartslist.h"
#include "blackmisc/simulation/interpolatorlinear.h"
#include <QObject>
#include <QHash>
#include <QVector>
@@ -137,10 +138,9 @@ namespace XBus
bool hasSurfaces = false;
bool hasXpdr = false;
char label[32] {};
BlackMisc::Aviation::CAircraftSituationList situations;
BlackMisc::Aviation::CAircraftPartsList parts;
BlackMisc::Simulation::CInterpolatorLinear interpolator;
CTerrainProbe terrainProbe;
BlackMisc::Simulation::CInterpolationHints hints(BlackMisc::Simulation::IInterpolator *) const;
BlackMisc::Simulation::CInterpolationHints hints() const;
XPMPPlaneSurfaces_t surfaces;
XPMPPlaneRadar_t xpdr;
Plane(void *id_, QString callsign_, QString aircraftIcao_, QString airlineIcao_, QString livery_);
@@ -153,8 +153,6 @@ namespace XBus
{
return static_cast<CTraffic *>(self)->getPlaneData(id, dataType, io_data);
}
BlackMisc::Simulation::IInterpolator *m_interpolator = nullptr;
};
}