26 #include <matrix/vlVector.h>
32 #include <unordered_map>
38 class DtModelDefinition;
39 class DtOsgArticulatedModel;
41 class DtRunwaySignaler;
42 class DtCoordinateSystem;
43 class DtRunwaySelector;
54 typedef std::unordered_map<DtUniqueID, std::vector<DtOsgArticulatedModel*> >
DtRunwayLightsMap;
63 virtual void updateRunwayManager(
const float budget)
override;
65 virtual void slot_AerodromeCreated(
const std::string& icao);
66 virtual void slot_AerodromeStartInitializing(
const std::string& icao);
68 virtual void slot_RunwayCreated(
DtRunwayData& runwayData);
69 virtual void slot_RunwayDestroyed(
DtRunwayData& runwayData);
74 virtual double runwayWidth(
const std::vector<DtVector>& runwayPolygon)
const;
75 virtual DtVector forwardVector(
const std::vector<DtVector>& runwayPolygon)
const;
76 virtual DtVector forwardVector(
const DtVector& position,
double heading)
const;
77 virtual DtVector rightVector(
const DtVector& position,
double heading)
const;
80 virtual std::string modelDefinitionFromLightName(
const std::string& lightName,
const std::string& defaultModelDefName=
"");
85 virtual DtRunwayData runwayData(
const std::string& key)
const override;
91 virtual bool createAndPlaceCenterlineLighting(
DtRunwayData& runwayData,
const float budget);
99 virtual void createAndPlaceTouchdownZone(
const DtRunwayData& runwayData);
100 virtual void createAndPlaceTouchdownZoneLightBar(
const DtUniqueID runwayId,
const std::string& airportName,
const std::string& runwayName,
101 const DtVector& position,
double heading);
102 virtual bool createAndPlaceEdgeLighting(
DtRunwayData& runwayData,
const float budget);
103 virtual void createAndPlaceThresholdAndEndLighting(
const DtRunwayData& runwayData);
107 const DtVector& pos,
double zOffset = 0.0,
double heading = 0.0);
108 virtual void createAndPlaceContinuousBarThreshold(
const DtUniqueID runwayId,
const std::string& threshGroupName,
111 virtual bool readModelDefsByNameFile(
const std::string& path,
const std::string& modelDefsFilename);
114 virtual void slot_coordinateSystemChanged();
118 virtual void slot_runwayLightsChanged(std::string airportName, std::string runwayName,
DtRunwayLightsEnum lightType,
float intensity);
122 virtual void slot_aerodromeLightsChanged(std::string aerodromeName,
DtAerodromeLightsEnum lightType,
float intensity);
124 virtual void slot_deQuit();
125 virtual void cleanup()
override;
127 virtual void removeRunwayData(
const DtRunwayData& runwayData);
163 DtVector geodeticToGeocentric(
double lat,
double lon,
double alt)
const;
165 DtTaitBryan geodeticToCig(
const DtVector& geodPos,
double geodeticHeading)
const;
The DtRunwayMarkingManager processes aerodrome data that is streamed in from osgEarth. It uses that data to create and place runway lighting and set up runway selector objects. Most of the lighting implementation may be found in DtOsgRunwayMarkingManager. You can use this base class definition to lookup runway selectors and their associated data by element id (as provided by the DtSelectionManager).
Definition: DtRunwayMarkingManager.h:42
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
ModelDefsByNameMap myModelDefsByNameMap
Definition: DtOsgRunwayMarkingManager.h:151
DtLockedBufferedQueue< DtRunwayData > myRunwayDataLockedQueue
Definition: DtOsgRunwayMarkingManager.h:137
DtSceneObjectsMap mySceneObjs
Definition: DtOsgRunwayMarkingManager.h:148
std::unordered_map< DtUniqueID, std::vector< DtOsgArticulatedModel * > > DtRunwayLightsMap
Definition: DtOsgRunwayMarkingManager.h:54
std::unordered_map< std::string, DtRunwayThresholdData > DtRunwayThresholdDataMap
Definition: DtOsgRunwayMarkingManager.h:52
Definition: DtTextureAtlasIndexParser.h:33
bool myAerodromeCreated
Definition: DtOsgRunwayMarkingManager.h:153
Contains makVrv::DtRunwayMarkingManager class.
Contains makVrv::DtDe class.
std::unordered_map< DtUniqueID, std::vector< DtSceneObject * > > DtSceneObjectsMap
Definition: DtOsgRunwayMarkingManager.h:53
An articulated model manipulator for controlling an articulated model. Supports indirect rendering of...
Definition: DtOsgArticulatedModel.h:67
DtRunwayLightsEnum
Enumeration for light types placed on runways. Note that all are associated with logical runways exce...
Definition: DtLightGroupNameManager.h:22
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:42
Definition: DtOsgRunwayMarkingManager.h:48
A locked buffered queue which allows multiple writers and a single reader. Internally the queue is st...
Definition: DtLockedBufferedQueue.h:24
Contains makVrv::DtVirtualBaseClass class.
std::vector< std::string > myNewRunways
Definition: DtOsgRunwayMarkingManager.h:155
static const char * RunwayLightMapFilename
Definition: DtOsgRunwayMarkingManager.h:131
DtRunwayLightsMap myRunwayLights
Definition: DtOsgRunwayMarkingManager.h:147
Contains makVrv::DtTextureAtlasIndexParser class.
DtLockedBufferedQueue< DtRunwayThresholdData > myRunwayThresholdToDeleteLockedQueue
Definition: DtOsgRunwayMarkingManager.h:142
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtLockedBufferedQueue< DtRunwayThresholdData > myRunwayDisplacedThresholdLockedQueue
Definition: DtOsgRunwayMarkingManager.h:139
DtRunwayThresholdDataMap myRunwayThresholdData
Definition: DtOsgRunwayMarkingManager.h:145
DtRunwayData is the data collected from paged Aerodrome data and used for creating runway markings...
Definition: DtRunwayData.h:23
DtAerodromeLightsEnum
Enumeration for light types that are aerodrome wide.
Definition: DtLightGroupNameManager.h:40
std::unordered_map< DtUniqueID, DtSceneObject * > myRunwayMarkers
Definition: DtOsgRunwayMarkingManager.h:144
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtLockedBufferedQueue< DtRunwayThresholdData > myRunwayThresholdLockedQueue
Definition: DtOsgRunwayMarkingManager.h:138
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
osg::Timer myCurrentFrameBudgetTimer
Definition: DtOsgRunwayMarkingManager.h:157
std::vector< std::string > myNewRunwayPolygons
Definition: DtOsgRunwayMarkingManager.h:156
DtTextureAtlasIndexParser * myTextureAtlasIndexParser
Definition: DtOsgRunwayMarkingManager.h:135
Contains makVrv::DtRunwayData class.
Base class to provide boost signal/slot management.
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:44
DtSignalConnectionManager myConnections
Definition: DtOsgRunwayMarkingManager.h:134
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DtLockedBufferedQueue< DtRunwayData > myRunwayDataToDeleteLockedQueue
Definition: DtOsgRunwayMarkingManager.h:141
Contains makVrv::DtSceneObject class.
std::unordered_map< std::string, std::string > ModelDefsByNameMap
Definition: DtOsgRunwayMarkingManager.h:150