From d3e49d4cf1ebcef7e93c740f6f15572360c6b34e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 1 Mar 2017 01:51:41 +0100 Subject: [PATCH] refs #863, enabled spline interpolator for FSX --- src/plugins/simulator/fsxcommon/simconnectobject.cpp | 6 ++++-- src/plugins/simulator/fsxcommon/simconnectobject.h | 9 ++++++--- src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/plugins/simulator/fsxcommon/simconnectobject.cpp b/src/plugins/simulator/fsxcommon/simconnectobject.cpp index 814dcf4bb..11cbf190b 100644 --- a/src/plugins/simulator/fsxcommon/simconnectobject.cpp +++ b/src/plugins/simulator/fsxcommon/simconnectobject.cpp @@ -9,6 +9,7 @@ #include "simconnectobject.h" #include "blackmisc/simulation/interpolatorlinear.h" +#include "blackmisc/simulation/interpolatorspline.h" using namespace BlackMisc::Aviation; using namespace BlackMisc::Simulation; @@ -20,10 +21,11 @@ namespace BlackSimPlugin CSimConnectObject::CSimConnectObject() { } - CSimConnectObject::CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, DWORD requestId, + CSimConnectObject::CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, + DWORD requestId, BlackMisc::Simulation::CInterpolationLogger *logger) : m_aircraft(aircraft), m_requestId(requestId), m_validRequestId(true), - m_interpolator(QSharedPointer::create(aircraft.getCallsign())) + m_interpolator(QSharedPointer::create(aircraft.getCallsign())) { m_interpolator->attachLogger(logger); } diff --git a/src/plugins/simulator/fsxcommon/simconnectobject.h b/src/plugins/simulator/fsxcommon/simconnectobject.h index d1027948e..329166beb 100644 --- a/src/plugins/simulator/fsxcommon/simconnectobject.h +++ b/src/plugins/simulator/fsxcommon/simconnectobject.h @@ -21,6 +21,7 @@ namespace BlackMisc namespace Simulation { class CInterpolatorLinear; + class CInterpolatorSpline; class CInterpolationLogger; } } @@ -36,7 +37,8 @@ namespace BlackSimPlugin CSimConnectObject(); //! Constructor - CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, DWORD requestId, + CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft, + DWORD requestId, BlackMisc::Simulation::CInterpolationLogger *logger); //! Destructor @@ -52,7 +54,7 @@ namespace BlackSimPlugin const QString &getAircraftModelString() const { return m_aircraft.getModelString(); } //! Interpolator - BlackMisc::Simulation::CInterpolatorLinear *getInterpolator() const { return m_interpolator.data(); } + BlackMisc::Simulation::CInterpolatorSpline *getInterpolator() const { return m_interpolator.data(); } //! Get current lights (requested from simulator) const BlackMisc::Aviation::CAircraftLights &getCurrentLightsInSimulator() const { return m_currentLightsInSim; } @@ -130,7 +132,8 @@ namespace BlackSimPlugin BlackMisc::Aviation::CAircraftLights m_currentLightsInSim { nullptr }; //!< current lights to know state for toggling BlackMisc::Aviation::CAircraftLights m_lightsAsSent { nullptr }; //!< lights as sent to simulator SIMCONNECT_PERIOD m_requestSimDataPeriod = SIMCONNECT_PERIOD_NEVER; //!< how often do we query ground elevation - QSharedPointer m_interpolator; //!< shared pointer because CSimConnectObject can be copied + // QSharedPointer m_interpolator; //!< shared pointer because CSimConnectObject can be copied + QSharedPointer m_interpolator; //!< shared pointer because CSimConnectObject can be copied }; //! Simulator objects (aka AI aircraft) diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp index 9943bd83c..36f231d70 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.cpp @@ -14,6 +14,7 @@ #include "blackmisc/simulation/fsx/simconnectutilities.h" #include "blackmisc/simulation/aircraftmodel.h" #include "blackmisc/simulation/interpolatorlinear.h" +#include "blackmisc/simulation/interpolatorspline.h" #include "blackmisc/simulation/interpolationhints.h" #include "blackmisc/simulation/simulatorplugininfo.h" #include "blackmisc/aviation/airportlist.h"