VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends
makVrv::DtBuoyBeaconFeatureBuilder Class Reference

DtBuoyBeaconFeatureBuilder implements a DtStreamedFeatureCreator for buoys. More...

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

Classes

struct  SeasonalBuoyRecord
 

Public Member Functions

 DtBuoyBeaconFeatureBuilder (const DtBuoyBeaconFeatureBuilder &rhs)
 Copy CTOR. More...
 
DtBuoyBeaconFeatureBuilderoperator= (const DtBuoyBeaconFeatureBuilder &orig)
 Assignment Operator. More...
 
virtual ~DtBuoyBeaconFeatureBuilder ()
 virtual DTOR More...
 
DtUniqueID create (DtDe &de, const std::string &registrantName, const std::string &featureStyleName, const std::string &strFeatureName, const DtVector &vPosition, double scale, DtVector minBound, DtVector maxBound)
 Create a feature (a DtBuoyOrBeaconFacade for now) More...
 
- Public Member Functions inherited from makVrv::DtStreamedFeatureCreator
 DtStreamedFeatureCreator (DtAgentManagerInterface &sceneInterface)
 CTOR. More...
 
 DtStreamedFeatureCreator (const DtStreamedFeatureCreator &orig)
 
DtStreamedFeatureCreatoroperator= (const DtStreamedFeatureCreator &rhs)
 Assignment operator. More...
 
virtual ~DtStreamedFeatureCreator ()
 

Protected Types

typedef boost::unordered_map
< DtUniqueID,
SeasonalBuoyRecord
SeasonalBuoyMap
 

Protected Member Functions

 DtBuoyBeaconFeatureBuilder (DtDe &de, const std::string &registrantName, DtBuoyBeaconModelStringParser &parser, DtTextureAtlasIndexParser &atlasParser, const std::string &featureClass)
 CTOR. More...
 
virtual void determineStationaryHeight (DtVector &buoyOrBeaconPos, double modelHeightAboveOrigin)
 This method is used to determine the height (z value, or altitude for geocentric) at which the model origin is placed for non-buoyant navigation features. More...
 
std::string buildModelDefinition (const std::string &markerName)
 buildModelDefinition is the entry point for turning a string found as a marker name in a CustomFeatureNode feature request into a model definition. More...
 
void build2DModelDefinitions (const std::string &markerName, std::string &modelDef2dUnlighted, std::string &modelDef2dLighted)
 
std::string parseAndBuild (const std::string &markerStr)
 parseAndBuild() uses the DtBuoyBeaconModelStringParser to break a marker name string into its component pieces; pattern and attribute/value pairs. More...
 
virtual void createAndAddBuoy (DtUniqueID elementId, const std::string &modelDefName, const std::string &modelDef2dUnlighted, std::string &modelDef2dLighted, const std::string &buoyName, const DtVector &vPosition, const std::string &designator)
 
int s57SeasonDateToDayInYear (const std::string &seasonDate)
 Convert an s57 seasonal date string (form is –MMDD or –MM) to a day of the year, from 0 (Jan 1) to 364 (or 365 on a leap year). More...
 
int calcCurrentDayOfTheYear ()
 Returns the day of the year for whatever date our calendar is currently set for, from 0 (Jan 1) to 364 (or 365 on a leap year). More...
 
virtual void setBuoyTextureOffset (DtArticulatedModelAgent *model, const std::string &atlasFileName, const std::string &key)
 Use the parsed buoy data with the buoy texture atlas to set the buoy color (ex. More...
 
virtual void setBuoyDesignator (DtArticulatedModelAgent *model, const std::string &atlasFileName, const std::string &designator)
 Set the designator for the buoy, 3 character max (ex. More...
 
void slot_featureToBeDeleted (const std::string &resgistrant, DtUniqueID featureId)
 Callback for signal from the streamed feature manager that a buoy has paged out. More...
 
void slot_dateChanged ()
 Callback for signal from shared state signaler that the date has changed. More...
 
Utility methods for reading model definition parameters into a variable
void readModelDefParam (DtModelDefinition &modelDef, const std::string &paramName, bool &resultOut)
 
void readModelDefParam (DtModelDefinition &modelDef, const std::string &paramName, float &resultOut)
 
void readModelDefParam (DtModelDefinition &modelDef, const std::string &paramName, std::string &resultOut)
 

Static Protected Member Functions

static bool checkSeasonalState (int seasonStart, int seasonEnd, int currentDay)
 Check to see if the current date is within the season seasonStart / seasonEnd. More...
 

Protected Attributes

DtDemyDe
 
DtBuoyBeaconModelStringParsermyBuoyMarkerStringParser
 
DtTextureAtlasIndexParsermyBuoyTextureAtlasIndexParser
 
std::string myBuoyName
 std::string myAtlasTextureName; More...
 
std::string myFeatureClass
 
std::string myRegistrantName
 
int myCurrentDayOfTheYear
 
SeasonalBuoyMap mySeasonalBuoyMap
 
DtSignalConnectionManager myConnections
 
- Protected Attributes inherited from makVrv::DtStreamedFeatureCreator
DtAgentManagerInterfacemySceneInterface
 

Friends

class DtBuoyBeaconFeatureBuilderCreator
 

Detailed Description

DtBuoyBeaconFeatureBuilder implements a DtStreamedFeatureCreator for buoys.

It reads configuration files found in appData/importConfig that it uses to build a model definition based on a pattern, attribute values, and the configuration data read. It then creates a DtBuoyOrBeaconFacade using the model definition that it generates

Member Typedef Documentation

Constructor & Destructor Documentation

makVrv::DtBuoyBeaconFeatureBuilder::DtBuoyBeaconFeatureBuilder ( const DtBuoyBeaconFeatureBuilder rhs)

Copy CTOR.

virtual makVrv::DtBuoyBeaconFeatureBuilder::~DtBuoyBeaconFeatureBuilder ( )
virtual

virtual DTOR

makVrv::DtBuoyBeaconFeatureBuilder::DtBuoyBeaconFeatureBuilder ( DtDe de,
const std::string &  registrantName,
DtBuoyBeaconModelStringParser parser,
DtTextureAtlasIndexParser atlasParser,
const std::string &  featureClass 
)
protected

CTOR.

Parameters
sceneInterfaceneeds to be provided to the constructor of the DtBuoyOrBeaconFacade that may be created
parseris used to parse an encode marker name string and generate a model definition based on its contents

Member Function Documentation

DtBuoyBeaconFeatureBuilder& makVrv::DtBuoyBeaconFeatureBuilder::operator= ( const DtBuoyBeaconFeatureBuilder orig)

Assignment Operator.

DtUniqueID makVrv::DtBuoyBeaconFeatureBuilder::create ( DtDe de,
const std::string &  registrantName,
const std::string &  featureStyleName,
const std::string &  strFeatureName,
const DtVector vPosition,
double  scale,
DtVector  minBound,
DtVector  maxBound 
)
virtual

Create a feature (a DtBuoyOrBeaconFacade for now)

Parameters
registrantNameis the name that was provided to the DtStreamedFeatureManager when the DtStreamedFeatureCreator was registered
styleNameis the name provided in the .osgEarth style block specified for this feature.
strFeatureNameis the markerName returned by osgEarth for the feature from a marker: specification
vPositionis the position of the feature
scaleis any scale factor provided from an osgEarth marker-scale: specification
minBoundis the min x,y,z of the feature bound
maxBoundis the max x,y,z of the feature bound
Returns
A uniqueId that will be used to identify the feature created when it comes time to delete it. returns 0 if no feature is created.

Implements makVrv::DtStreamedFeatureCreator.

virtual void makVrv::DtBuoyBeaconFeatureBuilder::determineStationaryHeight ( DtVector buoyOrBeaconPos,
double  modelHeightAboveOrigin 
)
protectedvirtual

This method is used to determine the height (z value, or altitude for geocentric) at which the model origin is placed for non-buoyant navigation features.

IF the model definition provides a non-zero modelHeightAboveOrigin and IF their is a non-zero height attribute for the feature, then these will be used to determine an origin that will place the feature with the top of the model at the correct height. If these are not provided, an intersector going from 50km up to 50km down is used to find a point on the terrain to place the origin of the object. If the intersector does not return a result, then the altitude of the original position provided to this method is used (the osgEarth-provided altitude for the feature); but osgEarth altitude clamping won't take ocean into consideration, in which case, this location could be below sea level. So finally, if the intersector altitude or osgEarth altiude IS below sea level, then sea level is used instead. Note that if a light is later attached to the object and it has a height attribute (and the model definition provides a modelHeightAboveOrigin) this height will be overridden by that action.

std::string makVrv::DtBuoyBeaconFeatureBuilder::buildModelDefinition ( const std::string &  markerName)
protected

buildModelDefinition is the entry point for turning a string found as a marker name in a CustomFeatureNode feature request into a model definition.

It first checks to see if there are any special characters in the string that would indicate that it needs to be parsed. If not, it just returns the string (minus the path that is usually included as part of a marker name). If parsing is required, it calls parseAndBuild().

void makVrv::DtBuoyBeaconFeatureBuilder::build2DModelDefinitions ( const std::string &  markerName,
std::string &  modelDef2dUnlighted,
std::string &  modelDef2dLighted 
)
protected
std::string makVrv::DtBuoyBeaconFeatureBuilder::parseAndBuild ( const std::string &  markerStr)
protected

parseAndBuild() uses the DtBuoyBeaconModelStringParser to break a marker name string into its component pieces; pattern and attribute/value pairs.

Once it has the attribute value pairs decoded, it checks for an object name (OBJNAM) parameter value. If it exists, it checks the object name will be looked up in he parser's name to model definition map. If any entry is found, that model definition will be used. Otherwise substitution is performed on the pattern based on the attribute values found and the generated model definition is returned

virtual void makVrv::DtBuoyBeaconFeatureBuilder::createAndAddBuoy ( DtUniqueID  elementId,
const std::string &  modelDefName,
const std::string &  modelDef2dUnlighted,
std::string &  modelDef2dLighted,
const std::string &  buoyName,
const DtVector vPosition,
const std::string &  designator 
)
protectedvirtual
int makVrv::DtBuoyBeaconFeatureBuilder::s57SeasonDateToDayInYear ( const std::string &  seasonDate)
protected

Convert an s57 seasonal date string (form is –MMDD or –MM) to a day of the year, from 0 (Jan 1) to 364 (or 365 on a leap year).

Returns -1 if string is not valid

int makVrv::DtBuoyBeaconFeatureBuilder::calcCurrentDayOfTheYear ( )
protected

Returns the day of the year for whatever date our calendar is currently set for, from 0 (Jan 1) to 364 (or 365 on a leap year).

static bool makVrv::DtBuoyBeaconFeatureBuilder::checkSeasonalState ( int  seasonStart,
int  seasonEnd,
int  currentDay 
)
staticprotected

Check to see if the current date is within the season seasonStart / seasonEnd.

virtual void makVrv::DtBuoyBeaconFeatureBuilder::setBuoyTextureOffset ( DtArticulatedModelAgent *  model,
const std::string &  atlasFileName,
const std::string &  key 
)
protectedvirtual

Use the parsed buoy data with the buoy texture atlas to set the buoy color (ex.

Red, Green, etc.)

virtual void makVrv::DtBuoyBeaconFeatureBuilder::setBuoyDesignator ( DtArticulatedModelAgent *  model,
const std::string &  atlasFileName,
const std::string &  designator 
)
protectedvirtual

Set the designator for the buoy, 3 character max (ex.

'CF','123','A')

void makVrv::DtBuoyBeaconFeatureBuilder::slot_featureToBeDeleted ( const std::string &  resgistrant,
DtUniqueID  featureId 
)
protected

Callback for signal from the streamed feature manager that a buoy has paged out.

void makVrv::DtBuoyBeaconFeatureBuilder::slot_dateChanged ( )
protected

Callback for signal from shared state signaler that the date has changed.

Look through the list of seasonal buoys to see if any need to be created or destroyed

void makVrv::DtBuoyBeaconFeatureBuilder::readModelDefParam ( DtModelDefinition modelDef,
const std::string &  paramName,
bool resultOut 
)
protected
void makVrv::DtBuoyBeaconFeatureBuilder::readModelDefParam ( DtModelDefinition modelDef,
const std::string &  paramName,
float &  resultOut 
)
protected
void makVrv::DtBuoyBeaconFeatureBuilder::readModelDefParam ( DtModelDefinition modelDef,
const std::string &  paramName,
std::string &  resultOut 
)
protected

Friends And Related Function Documentation

friend class DtBuoyBeaconFeatureBuilderCreator
friend

Member Data Documentation

DtDe& makVrv::DtBuoyBeaconFeatureBuilder::myDe
protected
DtBuoyBeaconModelStringParser& makVrv::DtBuoyBeaconFeatureBuilder::myBuoyMarkerStringParser
protected
DtTextureAtlasIndexParser& makVrv::DtBuoyBeaconFeatureBuilder::myBuoyTextureAtlasIndexParser
protected
std::string makVrv::DtBuoyBeaconFeatureBuilder::myBuoyName
protected

std::string myAtlasTextureName;

std::string makVrv::DtBuoyBeaconFeatureBuilder::myFeatureClass
protected
std::string makVrv::DtBuoyBeaconFeatureBuilder::myRegistrantName
protected
int makVrv::DtBuoyBeaconFeatureBuilder::myCurrentDayOfTheYear
protected
SeasonalBuoyMap makVrv::DtBuoyBeaconFeatureBuilder::mySeasonalBuoyMap
protected
DtSignalConnectionManager makVrv::DtBuoyBeaconFeatureBuilder::myConnections
protected

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

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)