VR-Forces 4.10 Class Documentation
 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
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 boost::unordered_map
< DtUniqueID,
DtOsgArticulatedModel * > 
TaxiwaySignsMap
 
typedef boost::unordered_map
< DtUniqueID, std::vector
< DtOsgArticulatedModel * > > 
RunwaySignMap
 
typedef boost::unordered_map
< DtUniqueID, DtSceneObject * > 
SceneObjectMap
 

Public Member Functions

virtual ~DtTaxiwaySignManager ()
 DTOR. More...
 
virtual void slot_TaxiwaySignCreated (DtTaxiwaySignData &signData)
 Called when Aerodrome creates the Taxiway sign. More...
 
virtual void slot_TaxiwaySignDestroyed (DtTaxiwaySignData &signData)
 Called when Aerodrome removes the Taxiway sign. More...
 
virtual void slot_RunwayCreated (DtRunwayData &runwayData)
 Called when Aerodrome creates the runway so that we can add distance remaining signs. More...
 
virtual void slot_RunwayDestroyed (DtRunwayData &runwayData)
 Called when Aerodrome removes the runway so that we can remove distance remaining signs. More...
 
virtual std::size_t hashPos (DtVector &pos)
 Convert position to identifier. More...
 
virtual std::size_t hashRunwayData (DtRunwayData &data)
 Convert runway verts to identifier. More...
 
virtual void setTaxiwayDesignator (DtOsgArticulatedModel *taxiwaySign, const std::string &atlasFileName, const std::string &text)
 Take the sign text in Xplane format, parse it and apply it to the model. More...
 
virtual void setModelDefinitionForSize (unsigned int size, const std::string &modelDef)
 What model definition goes with which sign size (size = 1,2,3,4,5) default is SignTaxiwaySize1, SignTaxiwaySize2,... More...
 
virtual void clearModelDefinitionForSize (unsigned int size)
 Clear the default set of sign size model definition names that the DtTaxiwaySignManager uses, keeps default model definition. More...
 
virtual void setDefaultModelDefinition (const std::string &modelDef)
 If we can't find a model for a particular size, what is the default. More...
 
virtual void setSignMaxSegments (unsigned int maxSegments)
 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. More...
 
virtual void setSignCharactersPerSegment (unsigned int charsPerSegment)
 How many characters are in each modeled sign segment. More...
 
virtual void setTaxiwaySignUVOffsets (DtOsgArticulatedModel *taxiwaySign, TaxiwaySignSide &sign, unsigned int numChars)
 Set the uv offsets for each letter of the sign in the model using a dtxc file. More...
 
virtual bool setMaxSignLimits (unsigned int &numSegments, unsigned int &numChars)
 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. More...
 
virtual void updateTaxiwaySignManager (const float budget)
 Take element from the queue and made DtOsgArticulatedModels on the main thread (DtTaxiwaySignManager is part of osgEarth threads) More...
 
virtual void createTaxiwaySign (DtTaxiwaySignData &signData)
 Take information about the sign (size, letters, etc. More...
 
virtual void createRunwaySigns (DtRunwayData &runwayData, const RunwaySignType signType, const RunwaySignPlacement signPlacement)
 Given a position and heading, place signs on either side of the runway. More...
 
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)
 Calculate the starting point and forward vector to step for placing signs on runways. More...
 
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)
 Calculate the sign locations and labels for a side of the runway. More...
 
virtual DtVector generateRightVectorAtPos (const DtVector &currPos, const double headingDeg)
 Generate a right vector given a position and heading from north (in degrees) More...
 
virtual void createAndPlaceRunwayDistanceSign (const DtVector &signLoc, const std::string &label, const RunwaySignPlacement signPlacement, const double heading, const unsigned int signSize, DtUniqueID runwayID)
 Create a sign with a given label for a particular runway. More...
 
virtual std::string generateSignLabel (unsigned int signNum)
 Generate runway distance signs label (ex. More...
 
virtual DtVector calcRunwayHalfwaySignPos (const double signOffset, const RunwaySignPlacement signPlacement, const DtRunwayData &runwayData)
 Calculate the sign position for a half way marker. More...
 
double offsetForDistanceSignSize (unsigned int size)
 Calculate the offset from the side of the runway for the runway distance marker based on size (4 or 5) More...
 
DtVector geodeticToCig (const DtVector &pos) const
 Convert (lon,lat,elevation) -> database coordinates. More...
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 Do nothing constructor. More...
 
virtual ~DtVirtualBaseClass ()
 Virtual do nothing destructor. More...
 

Static Public Member Functions

static DtTaxiwaySignManagerinstance (DtDe &anIG)
 Get an instance of the taxiway sign manager. More...
 

Public Attributes

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

Protected Member Functions

 DtTaxiwaySignManager (DtDe &de)
 

Protected Attributes

DtDemyDe
 
DtSignalConnectionManager myConnections
 
DtTaxiwaySignParsermySignParser
 
DtTextureAtlasIndexParsermyTaxiwaySignTextureAtlasParser
 
DtLockedBufferedQueue
< DtTaxiwaySignData
mySignDataLockedQueue
 
DtLockedBufferedQueue
< DtRunwayData
myRunwayDataLockedQueue
 
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
 

Member Typedef Documentation

typedef boost::unordered_map<DtUniqueID, std::vector<DtOsgArticulatedModel*> > makVrv::DtTaxiwaySignManager::RunwaySignMap

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.

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

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

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)