VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::DtTaxiwaySignManager Class Reference
Inheritance diagram for makVrv::DtTaxiwaySignManager:
Inheritance graph
[legend]

Public Types

enum  RunwaySignType { SIDED_SINGLE, SIDED_DOUBLE }
 
enum  RunwaySignPlacement { PLACEMENT_LEFT, PLACEMENT_RIGHT }
 
typedef std::vector
< DtTaxiwaySignLetter
TaxiwaySignSide
 
typedef std::unordered_map
< DtUniqueID,
DtOsgArticulatedModel * > 
TaxiwaySignsMap
 
typedef std::unordered_map
< DtUniqueID, std::vector
< DtOsgArticulatedModel * > > 
RunwaySignMap
 
typedef std::unordered_map
< DtUniqueID, DtSceneObject * > 
SceneObjectMap
 

Public Member Functions

virtual ~DtTaxiwaySignManager ()
 
virtual void slot_TaxiwaySignCreated (DtTaxiwaySignData &signData)
 
virtual void slot_TaxiwaySignDestroyed (DtTaxiwaySignData &signData)
 
virtual void slot_RunwayCreated (DtRunwayData &runwayData)
 
virtual void slot_RunwayDestroyed (DtRunwayData &runwayData)
 
virtual std::size_t hashPos (DtVector &pos)
 
virtual std::size_t hashRunwayData (DtRunwayData &data)
 
virtual void setTaxiwayDesignator (DtOsgArticulatedModel *taxiwaySign, const std::string &atlasFileName, const std::string &text)
 
virtual void setModelDefinitionForSize (unsigned int size, const std::string &modelDef)
 
virtual void clearModelDefinitionForSize (unsigned int size)
 
virtual void setDefaultModelDefinition (const std::string &modelDef)
 
virtual void setSignMaxSegments (unsigned int maxSegments)
 
virtual void setSignCharactersPerSegment (unsigned int charsPerSegment)
 
virtual void setTaxiwaySignUVOffsets (DtOsgArticulatedModel *taxiwaySign, TaxiwaySignSide &sign, unsigned int numChars)
 
virtual bool setMaxSignLimits (unsigned int &numSegments, unsigned int &numChars)
 
virtual void updateTaxiwaySignManager (const float budget)
 
virtual void createTaxiwaySign (DtTaxiwaySignData &signData)
 
virtual void createRunwaySigns (DtRunwayData &runwayData, const RunwaySignType signType, const RunwaySignPlacement signPlacement)
 
virtual void createAndPlaceHalfwayRunwayDistanceSign (const DtRunwayData &runwayData, const double signWidthOffset, const RunwaySignPlacement signPlacement, DtUniqueID runwayID)
 
virtual void extractRunwayStartAndForward (const DtRunwayData &runwayData, DtVector &centerStartPoint, DtVector &forwardVector, const RunwaySignPlacement signPlacement)
 
virtual void generateSignLocationsAndStrings (std::vector< DtVector > &signLocations, std::vector< std::string > &signLabels, const double signSpacing, const double signOffset, RunwaySignType signType, const RunwaySignPlacement signPlacement, const DtRunwayData &runwayData)
 
virtual DtVector generateRightVectorAtPos (const DtVector &currPos, const double headingDeg)
 
virtual void createAndPlaceRunwayDistanceSign (const DtVector &signLoc, const std::string &label, const RunwaySignPlacement signPlacement, const double heading, const unsigned int signSize, DtUniqueID runwayID)
 
virtual std::string generateSignLabel (unsigned int signNum)
 
virtual DtVector calcRunwayHalfwaySignPos (const double signOffset, const RunwaySignPlacement signPlacement, const DtRunwayData &runwayData)
 
double offsetForDistanceSignSize (unsigned int size)
 
DtVector geodeticToCig (const DtVector &pos) const
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtTaxiwaySignManagerinstance (DtDe &anIG)
 

Public Attributes

boost::signalslib::signal
< void(DtTaxiwaySignData &)> 
signal_TaxiwaySignDeleted
 
boost::signalslib::signal
< void(DtTaxiwaySignData &)> 
signal_TaxiwaySignCreated
 

Protected Member Functions

virtual void slot_coordinateSystemChanged ()
 
 DtTaxiwaySignManager (DtDe &de)
 

Protected Attributes

DtDemyDe
 
DtSignalConnectionManager myConnections
 
DtTaxiwaySignParsermySignParser
 
DtTextureAtlasIndexParsermyTaxiwaySignTextureAtlasParser
 
DtLockedBufferedQueue
< DtTaxiwaySignData
mySignDataLockedQueue
 
DtLockedBufferedQueue
< DtRunwayData
myRunwayDataLockedQueue
 
DtLockedBufferedQueue
< DtTaxiwaySignData
mySignDataToRemoveLockedQueue
 
DtLockedBufferedQueue
< DtRunwayData
myRunwayDataToRemoveLockedQueue
 
TaxiwaySignsMap myTaxiwaySigns
 
RunwaySignMap myRunwaySigns
 
SceneObjectMap mySceneObjs
 
std::map< unsigned int,
std::string > 
myTaxiwaySignModelDefinitions
 
std::string myDefaultTaxiwaySignModelDefinition
 
unsigned int myTaxiwaySignModelMaxSegments
 
unsigned int myTaxiwaySignModelLettersPerSegment
 
std::vector< DtTaxiwaySignDatamyTaxiSignCreationVector
 
std::vector< DtRunwayDatamyRunwayCreationVector
 
DtCoordinateSystemmyCoordinateSystem = nullptr
 

Private Member Functions

void remove (DtTaxiwaySignData &signData)
 
void remove (DtRunwayData &runwayData)
 

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
SIDED_SINGLE 
SIDED_DOUBLE 
Enumerator
PLACEMENT_LEFT 
PLACEMENT_RIGHT 

Constructor & Destructor Documentation

virtual makVrv::DtTaxiwaySignManager::~DtTaxiwaySignManager ( )
virtual

DTOR.

makVrv::DtTaxiwaySignManager::DtTaxiwaySignManager ( DtDe de)
protected

Member Function Documentation

static DtTaxiwaySignManager& makVrv::DtTaxiwaySignManager::instance ( DtDe anIG)
static

Get an instance of the taxiway sign manager.

virtual void makVrv::DtTaxiwaySignManager::slot_TaxiwaySignCreated ( DtTaxiwaySignData signData)
virtual

Called when Aerodrome creates the Taxiway sign.

virtual void makVrv::DtTaxiwaySignManager::slot_TaxiwaySignDestroyed ( DtTaxiwaySignData signData)
virtual

Called when Aerodrome removes the Taxiway sign.

virtual void makVrv::DtTaxiwaySignManager::slot_RunwayCreated ( DtRunwayData runwayData)
virtual

Called when Aerodrome creates the runway so that we can add distance remaining signs.

virtual void makVrv::DtTaxiwaySignManager::slot_RunwayDestroyed ( DtRunwayData runwayData)
virtual

Called when Aerodrome removes the runway so that we can remove distance remaining signs.

virtual std::size_t makVrv::DtTaxiwaySignManager::hashPos ( DtVector pos)
virtual

Convert position to identifier.

virtual std::size_t makVrv::DtTaxiwaySignManager::hashRunwayData ( DtRunwayData data)
virtual

Convert runway verts to identifier.

virtual void makVrv::DtTaxiwaySignManager::setTaxiwayDesignator ( DtOsgArticulatedModel taxiwaySign,
const std::string &  atlasFileName,
const std::string &  text 
)
virtual

Take the sign text in Xplane format, parse it and apply it to the model.

virtual void makVrv::DtTaxiwaySignManager::setModelDefinitionForSize ( unsigned int  size,
const std::string &  modelDef 
)
virtual

What model definition goes with which sign size (size = 1,2,3,4,5) default is SignTaxiwaySize1, SignTaxiwaySize2,...

virtual void makVrv::DtTaxiwaySignManager::clearModelDefinitionForSize ( unsigned int  size)
virtual

Clear the default set of sign size model definition names that the DtTaxiwaySignManager uses, keeps default model definition.

virtual void makVrv::DtTaxiwaySignManager::setDefaultModelDefinition ( const std::string &  modelDef)
virtual

If we can't find a model for a particular size, what is the default.

virtual void makVrv::DtTaxiwaySignManager::setSignMaxSegments ( unsigned int  maxSegments)
virtual

The taxiway signs are based on 9 segments with 2 letters per segment However, other models might have more or less and more or less letters per segment How many segment are in the model used to represent the signs.

virtual void makVrv::DtTaxiwaySignManager::setSignCharactersPerSegment ( unsigned int  charsPerSegment)
virtual

How many characters are in each modeled sign segment.

virtual void makVrv::DtTaxiwaySignManager::setTaxiwaySignUVOffsets ( DtOsgArticulatedModel taxiwaySign,
TaxiwaySignSide sign,
unsigned int  numChars 
)
virtual

Set the uv offsets for each letter of the sign in the model using a dtxc file.

virtual bool makVrv::DtTaxiwaySignManager::setMaxSignLimits ( unsigned int numSegments,
unsigned int numChars 
)
virtual

Given the numebr of chars on the largest side of the sign clamp the number of chars and number of segments to fit the max the model can handle.

virtual void makVrv::DtTaxiwaySignManager::updateTaxiwaySignManager ( const float  budget)
virtual

Take element from the queue and made DtOsgArticulatedModels on the main thread (DtTaxiwaySignManager is part of osgEarth threads)

virtual void makVrv::DtTaxiwaySignManager::createTaxiwaySign ( DtTaxiwaySignData signData)
virtual

Take information about the sign (size, letters, etc. and create and configure the model)

virtual void makVrv::DtTaxiwaySignManager::createRunwaySigns ( DtRunwayData runwayData,
const RunwaySignType  signType,
const RunwaySignPlacement  signPlacement 
)
virtual

Given a position and heading, place signs on either side of the runway.

virtual void makVrv::DtTaxiwaySignManager::createAndPlaceHalfwayRunwayDistanceSign ( const DtRunwayData runwayData,
const double  signWidthOffset,
const RunwaySignPlacement  signPlacement,
DtUniqueID  runwayID 
)
virtual
virtual void makVrv::DtTaxiwaySignManager::extractRunwayStartAndForward ( const DtRunwayData runwayData,
DtVector centerStartPoint,
DtVector forwardVector,
const RunwaySignPlacement  signPlacement 
)
virtual

Calculate the starting point and forward vector to step for placing signs on runways.

virtual void makVrv::DtTaxiwaySignManager::generateSignLocationsAndStrings ( std::vector< DtVector > &  signLocations,
std::vector< std::string > &  signLabels,
const double  signSpacing,
const double  signOffset,
RunwaySignType  signType,
const RunwaySignPlacement  signPlacement,
const DtRunwayData runwayData 
)
virtual

Calculate the sign locations and labels for a side of the runway.

virtual DtVector makVrv::DtTaxiwaySignManager::generateRightVectorAtPos ( const DtVector currPos,
const double  headingDeg 
)
virtual

Generate a right vector given a position and heading from north (in degrees)

virtual void makVrv::DtTaxiwaySignManager::createAndPlaceRunwayDistanceSign ( const DtVector signLoc,
const std::string &  label,
const RunwaySignPlacement  signPlacement,
const double  heading,
const unsigned int  signSize,
DtUniqueID  runwayID 
)
virtual

Create a sign with a given label for a particular runway.

virtual std::string makVrv::DtTaxiwaySignManager::generateSignLabel ( unsigned int  signNum)
virtual

Generate runway distance signs label (ex. " 1" instead of "1" for nicer formatting on the sign.

virtual DtVector makVrv::DtTaxiwaySignManager::calcRunwayHalfwaySignPos ( const double  signOffset,
const RunwaySignPlacement  signPlacement,
const DtRunwayData runwayData 
)
virtual

Calculate the sign position for a half way marker.

double makVrv::DtTaxiwaySignManager::offsetForDistanceSignSize ( unsigned int  size)

Calculate the offset from the side of the runway for the runway distance marker based on size (4 or 5)

DtVector makVrv::DtTaxiwaySignManager::geodeticToCig ( const DtVector pos) const

Convert (lon,lat,elevation) -> database coordinates.

virtual void makVrv::DtTaxiwaySignManager::slot_coordinateSystemChanged ( )
protectedvirtual

slot for when the coordinate system changes

void makVrv::DtTaxiwaySignManager::remove ( DtTaxiwaySignData signData)
private
void makVrv::DtTaxiwaySignManager::remove ( DtRunwayData runwayData)
private

Member Data Documentation

boost::signalslib::signal<void ( DtTaxiwaySignData& )> makVrv::DtTaxiwaySignManager::signal_TaxiwaySignDeleted
boost::signalslib::signal<void ( DtTaxiwaySignData& )> makVrv::DtTaxiwaySignManager::signal_TaxiwaySignCreated
DtDe& makVrv::DtTaxiwaySignManager::myDe
protected
DtSignalConnectionManager makVrv::DtTaxiwaySignManager::myConnections
protected
DtTaxiwaySignParser* makVrv::DtTaxiwaySignManager::mySignParser
protected
DtTextureAtlasIndexParser* makVrv::DtTaxiwaySignManager::myTaxiwaySignTextureAtlasParser
protected
DtLockedBufferedQueue<DtTaxiwaySignData> makVrv::DtTaxiwaySignManager::mySignDataLockedQueue
protected
DtLockedBufferedQueue<DtRunwayData> makVrv::DtTaxiwaySignManager::myRunwayDataLockedQueue
protected
DtLockedBufferedQueue<DtTaxiwaySignData> makVrv::DtTaxiwaySignManager::mySignDataToRemoveLockedQueue
protected
DtLockedBufferedQueue<DtRunwayData> makVrv::DtTaxiwaySignManager::myRunwayDataToRemoveLockedQueue
protected
TaxiwaySignsMap makVrv::DtTaxiwaySignManager::myTaxiwaySigns
protected
RunwaySignMap makVrv::DtTaxiwaySignManager::myRunwaySigns
protected
SceneObjectMap makVrv::DtTaxiwaySignManager::mySceneObjs
protected
std::map<unsigned int, std::string> makVrv::DtTaxiwaySignManager::myTaxiwaySignModelDefinitions
protected
std::string makVrv::DtTaxiwaySignManager::myDefaultTaxiwaySignModelDefinition
protected
unsigned int makVrv::DtTaxiwaySignManager::myTaxiwaySignModelMaxSegments
protected
unsigned int makVrv::DtTaxiwaySignManager::myTaxiwaySignModelLettersPerSegment
protected
std::vector<DtTaxiwaySignData> makVrv::DtTaxiwaySignManager::myTaxiSignCreationVector
protected
std::vector<DtRunwayData> makVrv::DtTaxiwaySignManager::myRunwayCreationVector
protected
DtCoordinateSystem* makVrv::DtTaxiwaySignManager::myCoordinateSystem = nullptr
protected

local clone of the system wide coordinate system. for thread safety.


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

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)