6 #ifndef SWIFT_MISC_SIMULATION_SIMULATIONENVIRONMENTPROVIDER_H
7 #define SWIFT_MISC_SIMULATION_SIMULATIONENVIRONMENTPROVIDER_H
23 namespace swift::misc::simulation
42 int minValues,
int sufficientValues)
const;
70 QPair<int, int> getElevationsFoundMissed()
const;
74 QPair<qint64, qint64> getElevationRequestTimes()
const;
78 QString getElevationsFoundMissedInfo()
const;
82 QString getElevationRequestTimesInfo()
const;
94 QString getSimulatorNameAndVersion()
const;
129 const QString &modelString)
const;
141 int setMaxElevationsRemembered(
int max);
145 int getMaxElevationsRemembered()
const;
149 void resetSimulationEnvironmentStatistics();
175 bool isCgProviderEnabled()
const;
176 bool isElevationProviderEnabled()
const;
177 void setCgProviderEnabled(
bool enabled);
178 void setElevationProviderEnabled(
bool enabled);
179 void setSimulationProviderEnabled(
bool elvEnabled,
bool cgEnabled);
198 void setSimulatorDetails(
const QString &name,
const QString &details,
const QString &version);
203 QString getSimulatorName()
const;
208 QString getSimulatorVersion()
const;
213 QString getSimulatorDetails()
const;
221 void clearDefaultModel();
224 void clearElevations();
232 void clearSimulationEnvironmentData();
240 bool rememberGroundElevation(
247 bool rememberGroundElevation(
const aviation::CCallsign &requestedForCallsign,
bool likelyOnGroundElevation,
300 QString m_simulatorName;
301 QString m_simulatorDetails;
302 QString m_simulatorVersion;
306 int m_maxElevations = 100;
307 int m_maxElevationsGnd = 400;
312 m_pendingElevationRequests;
317 m_cgsPerModelOverridden;
318 qint64 m_statsMaxElevRequestTimeMs = -1;
319 qint64 m_statsCurrentElevRequestTimeMs = -1;
321 bool m_enableElevation =
true;
322 bool m_enableCG =
true;
324 mutable int m_elvFound = 0;
325 mutable int m_elvMissed = 0;
327 mutable QReadWriteLock m_lockElvCoordinates {
328 QReadWriteLock::Recursive
330 mutable QReadWriteLock m_lockCG { QReadWriteLock::Recursive };
331 mutable QReadWriteLock m_lockModel { QReadWriteLock::Recursive };
332 mutable QReadWriteLock m_lockSimInfo { QReadWriteLock::Recursive };
338 virtual void anchor();
356 int minValues,
int sufficientValues)
const;
368 QPair<int, int> getElevationsFoundMissed()
const;
371 QString getElevationsFoundMissedInfo()
const;
374 QPair<qint64, qint64> getElevationRequestTimes()
const;
377 QString getElevationRequestTimesInfo()
const;
386 QString getSimulatorNameAndVersion()
const;
412 Q_ASSERT(simEnvProvider);
418 "org.swift-project.misc::simulation::isimulationenvironmentprovider")
Base class of provider aware classes.
Base class for providers.
Value object encapsulating information of an aircraft's situation.
Altitude as used in aviation, can be AGL or MSL altitude.
Value object encapsulating information of a callsign.
Value object for a set of callsigns.
Value object encapsulating a list of coordinates.
Plane of same elevation, can be a single point or larger area (e.g. airport)
static const physical_quantities::CLength & singlePointRadius()
Radius for single point.
Geodetic coordinate, a position in 3D space relative to the reference geoid.
Physical unit length (length)
Aircraft model (used by another pilot, my models on disk)
Class which can be directly used to access an.
CSimulationEnvironmentAware(ISimulationEnvironmentProvider *simEnvProvider)
Constructor.
void setSimulationEnvironmentProvider(ISimulationEnvironmentProvider *provider)
Set the provider.
CSimulationEnvironmentAware()
Default constructor.
Simple hardcoded info about the corresponding simulator.
Describing a simulator plugin.
Direct in memory access to elevation data.
virtual bool requestElevation(const geo::ICoordinateGeodetic &reference, const aviation::CCallsign &callsign)=0
Request elevation, there is no guarantee the requested elevation will be available in the provider.
Settings for simulator Driver independent parts (such as directories), also used in model loaders.
#define SWIFT_MISC_EXPORT
Export a class or function from the library.