Ref T180, get interpolated situation utility function in CSimConnectObject, returning the aircraft situation if there is no interpolation value

This commit is contained in:
Klaus Basan
2017-11-04 15:53:08 +01:00
parent 656d86a4ef
commit 924d4aab7f
3 changed files with 24 additions and 4 deletions

View File

@@ -98,6 +98,19 @@ namespace BlackSimPlugin
return m_interpolator->getInterpolatorInfo();
}
CAircraftSituation CSimConnectObject::getInterpolatedSituation(
qint64 currentTimeSinceEpoc,
const CInterpolationAndRenderingSetup &setup,
const CInterpolationHints &hints, CInterpolationStatus &status) const
{
Q_ASSERT(m_interpolator);
const CAircraftSituation s = m_interpolator->getInterpolatedSituation(currentTimeSinceEpoc, setup, hints, status);
// return original position if interpolation fails for some reason
const bool valid = status.allTrue() && !s.isPositionNull() && !s.isGeodeticHeightNull();
return valid ? m_aircraft.getSituation() : s;
}
bool CSimConnectObjects::setSimConnectObjectIdForRequestId(DWORD requestId, DWORD objectId, bool resetSentParts)
{
// First check, if this request id belongs to us