diff --git a/src/blackmisc/simulation/interpolator.cpp b/src/blackmisc/simulation/interpolator.cpp index 0f34db691..516558d64 100644 --- a/src/blackmisc/simulation/interpolator.cpp +++ b/src/blackmisc/simulation/interpolator.cpp @@ -110,6 +110,8 @@ namespace BlackMisc status.setChangedPosition(true); } status.setInterpolationSucceeded(true); + m_isFirstInterpolation = false; + if (m_logger && hints.isLoggingInterpolation()) { log.timestamp = currentTimeMsSinceEpoc; diff --git a/src/blackmisc/simulation/interpolator.h b/src/blackmisc/simulation/interpolator.h index bfebf95de..71942bc4c 100644 --- a/src/blackmisc/simulation/interpolator.h +++ b/src/blackmisc/simulation/interpolator.h @@ -74,6 +74,7 @@ namespace BlackMisc BlackMisc::Aviation::CAircraftSituationList m_aircraftSituations; //!< recent situations BlackMisc::Aviation::CAircraftPartsList m_aircraftParts; //!< recent parts BlackMisc::Aviation::CCallsign m_callsign; //!< callsign + bool m_isFirstInterpolation = true; //!< set to false after the first successful interpolation //! Constructor CInterpolator(const QString &objectName, const BlackMisc::Aviation::CCallsign &callsign, QObject *parent); diff --git a/src/blackmisc/simulation/interpolatorlinear.cpp b/src/blackmisc/simulation/interpolatorlinear.cpp index 93d8803f9..b7c84d41d 100644 --- a/src/blackmisc/simulation/interpolatorlinear.cpp +++ b/src/blackmisc/simulation/interpolatorlinear.cpp @@ -114,7 +114,7 @@ namespace BlackMisc currentSituation.setTimeOffsetMs(oldSituation.getTimeOffsetMs() + (newSituation.getTimeOffsetMs() - oldSituation.getTimeOffsetMs()) * simulationTimeFraction); currentSituation.setMSecsSinceEpoch(oldSituation.getMSecsSinceEpoch() + deltaTimeFractionMs); - status.setChangedPosition(oldSituation.getPosition() != newSituation.getPosition() || oldSituation.getAltitude() != newSituation.getAltitude()); + status.setChangedPosition(m_isFirstInterpolation || oldSituation.getPosition() != newSituation.getPosition() || oldSituation.getAltitude() != newSituation.getAltitude()); status.setInterpolationSucceeded(true); log.oldSituation = oldSituation;