VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
makVrv::DtRunwayMarkingManager Class Referenceabstract

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).

Inheritance diagram for makVrv::DtRunwayMarkingManager:
Inheritance graph
[legend]

Public Member Functions

 DtRunwayMarkingManager (DtDe &de)
 
 DtRunwayMarkingManager ()=delete
 
 DtRunwayMarkingManager (const DtRunwayMarkingManager &orig)=delete
 
DtRunwayMarkingManageroperator= (const DtRunwayMarkingManager &orig)=delete
 
virtual ~DtRunwayMarkingManager ()
 
virtual DtRunwaySelectorfindRunwaySelector (DtElementID id)
 
virtual DtRunwayData runwayData (const std::string &key) const =0
 
virtual void updateRunwayManager (const float budget)=0
 
virtual std::string createLightGroupName (const std::string &airportName, const std::string &runwayName, DtRunwayLightsEnum lightType) const
 
virtual std::string createLightGroupName (const std::string &airportName, DtAerodromeLightsEnum lightType) const
 
virtual std::string createLightGroupName (const std::string &airportName, const std::string &runwayName, const std::string &lightName) const
 
virtual std::string createLightGroupName (const std::string &airportName, const std::string &runway1Name, const std::string &runway2Name, const std::string &lightName) const
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtRunwayMarkingManagerinstance (DtDe &de)
 
static void registerInstance (DtDe &de, DtRunwayMarkingManager *anInstance)
 
static std::string generateLightGroupName (const std::string &airportName, const std::string &runwayName, const std::string &lightSubGroup)
 

Protected Member Functions

virtual void cleanup ()
 
virtual std::string runwayKey (const std::string &apt_icao, const std::string &runwayNum) const
 
virtual std::size_t hashRunwayData (const DtRunwayData &runwayData) const
 
virtual void createAndPlaceRunwaySelector (const DtRunwayData &runwayData)
 
virtual void slot_runwayConditionChanged (DtUniqueID runwayId, const std::string &airportCode, const std::string &runwayName, DtRunwayCondition condition)
 
virtual void slot_runwayDamageStateChanged (DtUniqueID runwayId, const std::string &airportCode, const std::string &runwayName, bool damaged)
 
virtual void slot_runwayArrestorStateChanged (DtUniqueID runwayId, unsigned int runwayIndex, const std::string &airportCode, const std::string &runwayName, bool arrestorsUp)
 
virtual void slot_runwayActiveStateChanged (DtUniqueID runwayId, unsigned int runwayIndex, const std::string &airportCode, const std::string &runwayName, bool isActive)
 

Protected Attributes

DtDemyDe
 
std::unordered_map
< DtElementID,
DtRunwaySelector * > 
myRunwaySelectors
 
std::unordered_map
< std::string, DtElementID
myLogicalKeyToSelectorIdMap
 
std::unordered_map
< std::string, DtUniqueID
myLogicalPhysicalRunwayMap
 
std::unordered_map< DtUniqueID,
DtRunwayStatus
myRunwayStatusMap
 
std::unordered_map
< std::size_t,
DtRunwaySelector * > 
myRunwaySelectorsCreated
 
DtSignalConnectionManager myConnections
 

Constructor & Destructor Documentation

makVrv::DtRunwayMarkingManager::DtRunwayMarkingManager ( DtDe de)

CTOR.

makVrv::DtRunwayMarkingManager::DtRunwayMarkingManager ( )
delete

default CTOR, not allowed.

makVrv::DtRunwayMarkingManager::DtRunwayMarkingManager ( const DtRunwayMarkingManager orig)
delete

Copy CTOR, not allowed.

virtual makVrv::DtRunwayMarkingManager::~DtRunwayMarkingManager ( )
virtual

DTOR.

Member Function Documentation

DtRunwayMarkingManager& makVrv::DtRunwayMarkingManager::operator= ( const DtRunwayMarkingManager orig)
delete

assignment operator, not allowed

virtual DtRunwaySelector* makVrv::DtRunwayMarkingManager::findRunwaySelector ( DtElementID  id)
virtual

Look up a runway selector by it's element id.

virtual DtRunwayData makVrv::DtRunwayMarkingManager::runwayData ( const std::string &  key) const
pure virtual

Look up the runway data for a specific logical runway using its key. Currently the key is the airport code plus "+" plus runway number. Runway keys can be retrieved from a DtRunwaySelector object when a runway is selected. If runway data is not found an 'empty' runway data structure is returned.

Implemented in makVrv::DtOsgRunwayMarkingManager.

virtual void makVrv::DtRunwayMarkingManager::updateRunwayManager ( const float  budget)
pure virtual

Update the manager (process newly received data). Called by the renderer each frame.

Implemented in makVrv::DtOsgRunwayMarkingManager.

virtual std::string makVrv::DtRunwayMarkingManager::createLightGroupName ( const std::string &  airportName,
const std::string &  runwayName,
DtRunwayLightsEnum  lightType 
) const
virtual

centralize the generation of light group names based on airport name, runway name, and type of light

virtual std::string makVrv::DtRunwayMarkingManager::createLightGroupName ( const std::string &  airportName,
DtAerodromeLightsEnum  lightType 
) const
virtual
virtual std::string makVrv::DtRunwayMarkingManager::createLightGroupName ( const std::string &  airportName,
const std::string &  runwayName,
const std::string &  lightName 
) const
virtual
virtual std::string makVrv::DtRunwayMarkingManager::createLightGroupName ( const std::string &  airportName,
const std::string &  runway1Name,
const std::string &  runway2Name,
const std::string &  lightName 
) const
virtual
static DtRunwayMarkingManager& makVrv::DtRunwayMarkingManager::instance ( DtDe de)
static

Get an instance of the runway marking manager.

static void makVrv::DtRunwayMarkingManager::registerInstance ( DtDe de,
DtRunwayMarkingManager anInstance 
)
static

Register the creator instance with a DE. Since this is an abstract base class, an implementor must supply this.

static std::string makVrv::DtRunwayMarkingManager::generateLightGroupName ( const std::string &  airportName,
const std::string &  runwayName,
const std::string &  lightSubGroup 
)
static

Generate the name that will be used by the light group manager for a group of lights related to a runway. The lightSubGroup defines the type of lights in the group. These are defined in appData/importConfig/runway_lightgroup_by_name_map.csv.

virtual void makVrv::DtRunwayMarkingManager::cleanup ( )
protectedvirtual

Delete objects created by instances of this class.

Reimplemented in makVrv::DtOsgRunwayMarkingManager.

virtual std::string makVrv::DtRunwayMarkingManager::runwayKey ( const std::string &  apt_icao,
const std::string &  runwayNum 
) const
protectedvirtual

Retrieve a runway key for a given airport/runway pair.

virtual std::size_t makVrv::DtRunwayMarkingManager::hashRunwayData ( const DtRunwayData runwayData) const
protectedvirtual

Generate a unique hash based on a runway's model data.

virtual void makVrv::DtRunwayMarkingManager::createAndPlaceRunwaySelector ( const DtRunwayData runwayData)
protectedvirtual

Create and setup a runway selector based on the data in runwayData.

virtual void makVrv::DtRunwayMarkingManager::slot_runwayConditionChanged ( DtUniqueID  runwayId,
const std::string &  airportCode,
const std::string &  runwayName,
DtRunwayCondition  condition 
)
protectedvirtual

Connected to the DtRunwayStatusSignler; updates the relevant selector if it's been created; stores the condition in the RunwayStatusMap. Note that runwayId is the DtUniqueID assigned by the aerodrome status manager to this physical runway.

virtual void makVrv::DtRunwayMarkingManager::slot_runwayDamageStateChanged ( DtUniqueID  runwayId,
const std::string &  airportCode,
const std::string &  runwayName,
bool  damaged 
)
protectedvirtual

Connected to the DtRunwayStatusSignler; updates the relevant selector if it's been created; stores the damage state in the RunwayStatusMap. Note that runwayId is the DtUniqueID assigned by the aerodrome status manager to this physical runway.

virtual void makVrv::DtRunwayMarkingManager::slot_runwayArrestorStateChanged ( DtUniqueID  runwayId,
unsigned int  runwayIndex,
const std::string &  airportCode,
const std::string &  runwayName,
bool  arrestorsUp 
)
protectedvirtual

Connected to the DtRunwayStatusSignler; updates the relevant selector if it's been created; stores the arrestor state in the RunwayStatusMap. Note that runwayId is the DtUniqueID assigned by the aerodrome status manager to this physical runway.

virtual void makVrv::DtRunwayMarkingManager::slot_runwayActiveStateChanged ( DtUniqueID  runwayId,
unsigned int  runwayIndex,
const std::string &  airportCode,
const std::string &  runwayName,
bool  isActive 
)
protectedvirtual

Connected to the DtRunwayStatusSignler; updates the relevant selector if it's been created; stores the active state in the RunwayStatusMap. Note that runwayId is the DtUniqueID assigned by the aerodrome status manager to this physical runway.

Member Data Documentation

DtDe& makVrv::DtRunwayMarkingManager::myDe
protected
std::unordered_map<DtElementID, DtRunwaySelector*> makVrv::DtRunwayMarkingManager::myRunwaySelectors
protected
std::unordered_map<std::string, DtElementID> makVrv::DtRunwayMarkingManager::myLogicalKeyToSelectorIdMap
protected
std::unordered_map<std::string, DtUniqueID> makVrv::DtRunwayMarkingManager::myLogicalPhysicalRunwayMap
protected
std::unordered_map<DtUniqueID, DtRunwayStatus> makVrv::DtRunwayMarkingManager::myRunwayStatusMap
protected
std::unordered_map<std::size_t, DtRunwaySelector*> makVrv::DtRunwayMarkingManager::myRunwaySelectorsCreated
protected
DtSignalConnectionManager makVrv::DtRunwayMarkingManager::myConnections
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)