![]() |
VR-Forces 5.0.1 Developer's Guide
|
handles the management of paged tiles and terrain patches being added to the indirect rendering system. For every terrain patch and paged tile it parses them to find any proxys or geodes and sends them off to the indirect system.

Public Types | |
| typedef std::vector < DtNodePlusTraversalInfo > | ProxyNodesArray |
Public Member Functions | |
| virtual | ~DtPagedTilesIndirectManager () |
| DtPagedTilesIndirectManager ()=delete | |
| DtPagedTilesIndirectManager (const DtPagedTilesIndirectManager &)=delete | |
| DtPagedTilesIndirectManager & | operator= (const DtPagedTilesIndirectManager &)=delete |
| virtual void | setName (const std::string &name) |
| virtual void | nodePagedIn (const osg::Node *node, const std::string &fileName, osg::NodePath &parentalNodePath, bool oceanExtracted) |
| virtual void | nodePagingOut (const osg::Node *node) |
| virtual void | addTextureLoaderToSceneGraph (osg::Group &myTerrainGroup) |
| virtual void | slot_postTick () |
| virtual void | setMetaflightGroup (osg::Node *node) |
Public Member Functions inherited from makVrv::DtVirtualBaseClass | |
| DtVirtualBaseClass () | |
| virtual | ~DtVirtualBaseClass () |
Public Attributes | |
| boost::signalslib::signal < void(const DtPagedTilesIndirectManager &)> | signal_terrainInstancesReadyToRender |
Protected Types | |
| typedef std::vector < boost::signalslib::connection > | Connections |
Protected Member Functions | |
| DtPagedTilesIndirectManager (DtDe &de, bool adjustLodStart, bool connectToPagingSignals) | |
| virtual void | slot_childLoaded (const osg::Group *page, const osg::Node *child, const std::string &fileName, osg::Node *&returnedNode) |
| virtual bool | shouldHandlePage (const osg::Group *page) |
| virtual void | slot_childPagedIn (const osg::Group *page, const osg::Node *child) |
| virtual void | indirectChildFromPageIn (const osg::Group *page, const osg::Node *child, const std::string &fileName, osg::NodePath &parentalNodePath, bool oceanExtracted) |
| virtual void | keyNodeGettingDeleted (const osg::Group *child, DtCellToGeoTypicalIndirectGeoMap *cellMap) |
| virtual void | keyNodeGettingDeleted (const osg::Group *child, DtCellToGeoSpecificIndirectGeoMap *cellMap) |
| virtual void | slot_childAboutToPageOut (const osg::Group *page, const osg::Node *child) |
| virtual bool | processProxyNodes (osg::Group *indirectGroup, const osg::Group *child, std::set< osg::Node * > &foundProxyNodes, osg::NodePath &parentalNodePath) |
| virtual void | processGeodes (osg::Group *indirectGroup, osg::Group *child, const std::string &fileName, const std::set< osg::Node * > &foundProxyNodes, bool backgroundThread, osg::NodePath &parentalNodePath, bool oceanIsIndirect) |
| virtual void | replaceChildWithGroup (const osg::Group *child, const osg::Group *childReplacement) |
| virtual void | indirectThisChild (osg::Group *intersectionGroup, osg::Group *child, const std::string &fileName, bool backgroundThread, osg::NodePath &parentalNodePath, bool oceanExtracted) |
| virtual void | disconnectSignalsAndWait () |
| virtual void | printHierarchy (const osg::Node *node) const |
| virtual void | removeNestedProxyNodes (ProxyNodesArray &proxyNodesArray) const |
| virtual DtIndirectModelsContainer * | GTModelsContainer () |
| virtual void | terrainSkinCellCreatedAndInstancesAdded (const DtCellGeoSpecificIndirectGeo *cell, const std::unordered_set< int > &instances) |
| virtual void | terrainSkinCellGettingDeleted (const DtCellGeoSpecificIndirectGeo *cell) |
Protected Attributes | |
| friend | DtPagedTilesIndirectManagerCreator |
| DtDe & | myDe |
| DtCellToGeoTypicalIndirectGeoMap * | myCellToGTIndirectGeoMap |
| DtIndirectModelsContainer * | myGTModelsContainer |
| DtCellToGeoSpecificIndirectGeoMap * | myCellToGSIndirectGeoMapTerrainSkin |
| std::unordered_map< const DtCellGeoSpecificIndirectGeo *, std::unordered_set< int > > | myMapCelltoSetGeodesInCell |
| boost::mutex | myMapCelltoSetGeodesInCellMutex |
| Connections | myConnections |
| DtSignalConnectionManager | myOtherConnections |
| osg::ref_ptr < DtIndirectTextureLoaderNode > | myTextureLoaderNode |
| boost::mutex | mySignalMutex |
| boost::condition | mySignalConditional |
| int | mySignalWaitCount |
| bool | myAdjustLodStart |
| DtIndirectVisitorControlGroupCreator & | myIndirectGeoIntersectionGroupCreator |
| osg::Node * | myMetaflightGroupNode |
| typedef std::vector< DtNodePlusTraversalInfo > makVrv::DtPagedTilesIndirectManager::ProxyNodesArray |
|
protected |
A collection of signals.
|
protected |
|
virtual |
Destructor.
|
delete |
not allowed - default constructor – only create using creator
|
delete |
not allowed - copy constructor
|
delete |
not allowed - equals operator
|
virtual |
mostly used for debugging sets then name on the registrar
|
virtual |
Indirect a node directly (utility function) can be used to indirect a scenegraph, so whole openflight terrains can be passed in here should only be called in the main thread NOTE: each time the signature of this function change the same change needs to be made in JrmDisabledIndirectManager.h.
Reimplemented in DtDisabledIndirectManager.
|
virtual |
Let the manger know a node is paging out should only be called in the main thread' NOTE: each time the signature of this function change the same change needs to be made in JrmDisabledIndirectManager.h.
Reimplemented in DtDisabledIndirectManager.
|
virtual |
Add a texture loader node to the scenegraph. It processes textures and gets them to loaded (onto the GPU) should only be called by the main thread NOTE: each time the signature of this function change the same change needs to be made in JrmDisabledIndirectManager.h.
Reimplemented in DtDisabledIndirectManager.
|
virtual |
handle the postTick signal. This -checks whether instances in each cell for the terrain skin are ready to render and emits signal_terrainInstancesReadyToRender, if so
|
virtual |
node for tracking which metaflight terrain patch this manager is managing.
|
protectedvirtual |
slot for when a paged tile is loaded (but not added to the scenegraph) called by the paged in a background thread. it updates the signal count since it can be called in the background NOTE: each time the signature of this function change the same change needs to be made in JrmDisabledIndirectManager.h
Reimplemented in DtDisabledIndirectManager.
|
protectedvirtual |
get the metaflight group from the paged lod and compare it against this manager's group
|
protectedvirtual |
slot for when paged tile has already been paged in only called in the main thread. Called after a tile has been added to the scenegraph does not update the signal count since it is only called in the main thread NOTE: each time the signature of this function change the same change needs to be made in JrmDisabledIndirectManager.h
Reimplemented in DtDisabledIndirectManager.
|
protectedvirtual |
used by slot_childPagedIn and nodePagedIn to indirect a scenegraph and add it to the scene called by nodePagedIn and slot_childPagedIn in the main thread
|
protectedvirtual |
helper function for deleting a key node from a geo typical map
|
protectedvirtual |
helper function for deleting a key node from a geo specific map
|
protectedvirtual |
slot for when paged tile is about to page out called in the main thread just before a tile has been paged out does not update the signal count since it is only called in the main thread NOTE: each time the signature of this function change the same change needs to be made in JrmDisabledIndirectManager.h
Reimplemented in DtDisabledIndirectManager.
|
protectedvirtual |
process all the proxy nodes under the child group. new indirect geometry ends up under the indirect group. Returns true if this tile can be correctly indirected and false if a condition which is incompatible with indirect rendering is found. Currently the only condition is if there is a DOF node above a proxy in the scene graph.
|
protectedvirtual |
process all the geodes that are not under proxy nodes in the specified child.
|
protectedvirtual |
replace the child with the child replacement for its first parent
|
protectedvirtual |
internal method which turns a child into a indirected group
|
protectedvirtual |
cleanup the signals and avoid any race conditions of other threads still in the slots when disconnecting
|
protectedvirtual |
utility function for printing out the hierarchy of a node
|
protectedvirtual |
utility function for removing all nested proxy nodes
|
protectedvirtual |
utility function to get access to indirect container
|
protectedvirtual |
internal method. called when a terrain skin cell is created.
|
protectedvirtual |
internal method. called when a terrain skin cell is about to be deleted.
|
protected |
friend class creator so that it is the only thing that will create DtPageTilesIndirectManagers
| boost::signalslib::signal<void(const DtPagedTilesIndirectManager&)> makVrv::DtPagedTilesIndirectManager::signal_terrainInstancesReadyToRender |
Emitted when instances of the terrain skin are ready to render.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
map of each cell to the set of instance ids (in the indirect geometry) for that cell
|
protected |
lock for the map above
|
protected |
The connected signals for paging.
|
protected |
manager for other connections
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |