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

class used to collect geometry coming in via buildings layer and add it to the indirect engine. will process: -external references (gs) -instanced references (gt) -procedural geometry (gt) -procedural geometry (gt) -instanced roofs (gt) Handles callbacks from a buildings layer premerge callback to add the data to the indirect engine

Public Member Functions

virtual ~DtIndirectBuildingsHandler ()
 
virtual void onDataPremerge (osg::Node *data)
 
virtual void onDataUnloaded (const osg::Node *data)
 
virtual void slot_postTick ()
 

Protected Types

typedef osg::ref_ptr< const
osg::Node > 
NodeRefPtr
 

Protected Member Functions

 DtIndirectBuildingsHandler (DtDe &de, const osgEarth::Layer &layer, const DtIndirectFadeParameters &fadeParameters, bool dynamicTerrainInstallerActive, bool cullFaceEnabled)
 
virtual void processBuildingsExternalModelNodes (const osg::Node *data)
 
virtual void processInstancedModelNodes (const osg::Node *data)
 
virtual void processElevationsLodNodes (const osg::Node *data)
 
const osg::Node * preloadModelAndRunDynamicTerrainParser (const std::string &modelName)
 

Protected Attributes

friend DtIndirectBuildingsHandlerCreator
 
DtDemyDe
 
osg::observer_ptr< const
osgEarth::Layer > 
myLayer
 
DtCellToGeoSpecificIndirectGeoMapmyGsMap
 
DtCellToGeoTypicalIndirectGeoMapmyGtMap
 
DtIndirectModelsContainermyGtModelsContainer
 
DtCellToGeoSpecificIndirectGeoMapmyProceduralGsMap
 
DtIndirectFadeParameters myFadeParameters
 
boost::mutex myProcessedNodeMapMutex
 
boost::condition_variable myProcessedNodeMapCondition
 
std::map< std::string, NodeRefPtrmyProcessedNodeMap
 
std::map< std::string, boolmyIsProcessingNodeMap
 
DtModelSemanticsMappermyModelSematicsMapper
 
const bool myDynamicTerrainInstallerActive
 
const bool myCullFaceEnabled
 
DtSignalConnectionManager myConnections
 

Private Member Functions

 DtIndirectBuildingsHandler (const DtIndirectBuildingsHandler &other)
 
DtIndirectBuildingsHandleroperator= (const DtIndirectBuildingsHandler &other)
 

Member Typedef Documentation

Constructor & Destructor Documentation

virtual makVrv::DtIndirectBuildingsHandler::~DtIndirectBuildingsHandler ( )
virtual

DTOR.

makVrv::DtIndirectBuildingsHandler::DtIndirectBuildingsHandler ( DtDe de,
const osgEarth::Layer &  layer,
const DtIndirectFadeParameters fadeParameters,
bool  dynamicTerrainInstallerActive,
bool  cullFaceEnabled 
)
protected

CTOR.

makVrv::DtIndirectBuildingsHandler::DtIndirectBuildingsHandler ( const DtIndirectBuildingsHandler other)
private

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtIndirectBuildingsHandler& makVrv::DtIndirectBuildingsHandler::operator= ( const DtIndirectBuildingsHandler other)
private

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectBuildingsHandler::onDataPremerge ( osg::Node *  data)
virtual

Callback for osgEarth premerge callback which is called in the background paging thread when the tile has been loaded but not yet added to the scenegraph.

virtual void makVrv::DtIndirectBuildingsHandler::onDataUnloaded ( const osg::Node *  data)
virtual

Callback for osgEarth unloaded callback which is called in the main render thread when a tile is being paged out.

virtual void makVrv::DtIndirectBuildingsHandler::slot_postTick ( )
virtual

handle the postTick signal.

virtual void makVrv::DtIndirectBuildingsHandler::processBuildingsExternalModelNodes ( const osg::Node *  data)
protectedvirtual

handle external references in the buildings layer (gs)

virtual void makVrv::DtIndirectBuildingsHandler::processInstancedModelNodes ( const osg::Node *  data)
protectedvirtual

handle instanced models in the buildings layer (gt)

virtual void makVrv::DtIndirectBuildingsHandler::processElevationsLodNodes ( const osg::Node *  data)
protectedvirtual

handle tagged geodes in the buildings layer (these are the geodes corresponding to procedural geo corresponding to the elevations in the buildings layer)

const osg::Node* makVrv::DtIndirectBuildingsHandler::preloadModelAndRunDynamicTerrainParser ( const std::string &  modelName)
protected

loads the model and stores a reference pointer to it in the modelName to modelNode map. also waits for other threads to finish if they are loading the same model. Returns a raw point to the model but it is saved in the member variable map so it will not be deleted in the rest of the premerge processing.

Member Data Documentation

friend makVrv::DtIndirectBuildingsHandler::DtIndirectBuildingsHandlerCreator
protected

creator friend class so it is the only one that can create new DtIndirectBuildingsHandler

DtDe& makVrv::DtIndirectBuildingsHandler::myDe
protected
osg::observer_ptr<const osgEarth::Layer> makVrv::DtIndirectBuildingsHandler::myLayer
protected

store by observer ptr here onDataPremerge for a node can get launched (in another thread) just after the layer has been deleted (e.g. reload) so the layer and hence the nodes being traverse via findTopMostNodeOfType are possibly invalid

DtCellToGeoSpecificIndirectGeoMap* makVrv::DtIndirectBuildingsHandler::myGsMap
protected

external models go here geospecific

DtCellToGeoTypicalIndirectGeoMap* makVrv::DtIndirectBuildingsHandler::myGtMap
protected

instanced models go here geotypical, share models

DtIndirectModelsContainer* makVrv::DtIndirectBuildingsHandler::myGtModelsContainer
protected
DtCellToGeoSpecificIndirectGeoMap* makVrv::DtIndirectBuildingsHandler::myProceduralGsMap
protected

Procedural stuff that ends up as geodes. Is also geospecific in the sense that each.

DtIndirectFadeParameters makVrv::DtIndirectBuildingsHandler::myFadeParameters
protected
boost::mutex makVrv::DtIndirectBuildingsHandler::myProcessedNodeMapMutex
protected
boost::condition_variable makVrv::DtIndirectBuildingsHandler::myProcessedNodeMapCondition
protected
std::map<std::string, NodeRefPtr > makVrv::DtIndirectBuildingsHandler::myProcessedNodeMap
protected
std::map<std::string, bool > makVrv::DtIndirectBuildingsHandler::myIsProcessingNodeMap
protected
DtModelSemanticsMapper& makVrv::DtIndirectBuildingsHandler::myModelSematicsMapper
protected
const bool makVrv::DtIndirectBuildingsHandler::myDynamicTerrainInstallerActive
protected
const bool makVrv::DtIndirectBuildingsHandler::myCullFaceEnabled
protected
DtSignalConnectionManager makVrv::DtIndirectBuildingsHandler::myConnections
protected

manager for connections


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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)