Ref T245, a P3D version of follow aircraft, still experimental

* testing approaches camera, observer, and guessing view name
* SimObject code for camera/observer
* functions aircraft situation -> FSX formats
This commit is contained in:
Klaus Basan
2018-11-01 02:27:39 +01:00
parent af7c386a1c
commit b6ce9e0408
5 changed files with 160 additions and 36 deletions

View File

@@ -261,6 +261,12 @@ namespace BlackSimPlugin
//! Remove the CSimConnectObject linked in the trace
bool removeSimObjectForTrace(const TraceFsxSendId &trace);
//! Remove camera if any
virtual void removeCamera(CSimConnectObject &simObject);
//! Remove observer if any
virtual void removeObserver(CSimConnectObject &simObject);
//! Trace if required, log errors
HRESULT logAndTraceSendId(HRESULT hr, const QString &warningMsg, const QString &functionName, const QString &functionDetails = {});
@@ -281,6 +287,20 @@ namespace BlackSimPlugin
static bool is64bit() { return (BlackConfig::CBuildConfig::buildWordSize() == 64); }
//! @}
//! Format conversion
//! \note must be valid situation
static SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation, bool sendGnd = true);
//! Format conversion
//! \note must be valid situation
static SIMCONNECT_DATA_PBH aircraftSituationToFsxPBH(const BlackMisc::Aviation::CAircraftSituation &situation);
//! Format conversion
static SIMCONNECT_DATA_INITPOSITION coordinateToFsxPosition(const BlackMisc::Geo::ICoordinateGeodetic &coordinate);
//! Format conversion
static SIMCONNECT_DATA_LATLONALT coordinateToFsxLatLonAlt(const BlackMisc::Geo::ICoordinateGeodetic &coordinate);
static constexpr qint64 AutoTraceOffsetMs = 10 * 1000; //!< how long do we trace?
HANDLE m_hSimConnect = nullptr; //!< handle to SimConnect object
DispatchProc m_dispatchProc = &CSimulatorFsxCommon::SimConnectProc; //!< called function for dispatch, can be overriden by specialized P3D function
@@ -454,13 +474,6 @@ namespace BlackSimPlugin
//! The SimConnect object for idxs
CSimConnectObject getSimObjectForObjectId(DWORD objectId) const;
//! Format conversion
//! \note must be valid situation
SIMCONNECT_DATA_INITPOSITION aircraftSituationToFsxPosition(const BlackMisc::Aviation::CAircraftSituation &situation, bool sendGnd = true);
//! Format conversion
SIMCONNECT_DATA_INITPOSITION coordinateToFsxPosition(const BlackMisc::Geo::ICoordinateGeodetic &coordinate);
//! Sync time with user's computer
void synchronizeTime(const BlackMisc::PhysicalQuantities::CTime &zuluTimeSim, const BlackMisc::PhysicalQuantities::CTime &localTimeSim);