![]() |
VR-Forces 4.10 Class Documentation
|
handles the management of paged tiles and terrain patches being added to the indirect rendering system. More...

Public Types | |
| typedef std::vector < DtNodePlusTraversalInfo > | ProxyNodesArray |
Public Member Functions | |
| virtual | ~DtPagedTilesIndirectManager () |
| Destructor. More... | |
| DtPagedTilesIndirectManager ()=delete | |
| not allowed - default constructor – only create using creator More... | |
| DtPagedTilesIndirectManager (const DtPagedTilesIndirectManager &)=delete | |
| not allowed - copy constructor More... | |
| DtPagedTilesIndirectManager & | operator= (const DtPagedTilesIndirectManager &)=delete |
| not allowed - equals operator More... | |
| virtual void | setName (const std::string &name) |
| mostly used for debugging sets then name on the registrar More... | |
| virtual void | nodePagedIn (const osg::Node *node, const std::string &fileName, osg::NodePath &parentalNodePath) |
| 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. More... | |
| virtual void | nodePagingOut (const osg::Node *node) |
| 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. More... | |
| virtual void | addTextureLoaderToSceneGraph (osg::Group &myTerrainGroup) |
| Add a texture loader node to the scenegraph. More... | |
| virtual void | slot_postTick () |
| handle the postTick signal. More... | |
| virtual void | setMetaflightGroup (osg::Node *node) |
| node for tracking which metaflight terrain patch this manager is managing. More... | |
Public Member Functions inherited from makVrv::DtVirtualBaseClass | |
| DtVirtualBaseClass () | |
| Do nothing constructor. More... | |
| virtual | ~DtVirtualBaseClass () |
| Virtual do nothing destructor. More... | |
Public Attributes | |
| boost::signalslib::signal < void(const DtPagedTilesIndirectManager &)> | signal_terrainInstancesReadyToRender |
| Emitted when instances of the terrain skin are ready to render. More... | |
Protected Types | |
| typedef std::vector < boost::signalslib::connection > | Connections |
| A collection of signals. More... | |
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) |
| slot for when a paged tile is loaded (but not added to the scenegraph) called by the paged in a background thread. More... | |
| virtual bool | shouldHandlePage (const osg::Group *page) |
| get the metaflight group from the paged lod and compare it against this manager's group More... | |
| virtual void | slot_childPagedIn (const osg::Group *page, const osg::Node *child) |
| slot for when paged tile has already been paged in only called in the main thread. More... | |
| virtual void | indirectChildFromPageIn (const osg::Group *page, const osg::Node *child, const std::string &fileName, osg::NodePath &parentalNodePath) |
| 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 More... | |
| virtual void | keyNodeGettingDeleted (const osg::Group *child, DtCellToGeoTypicalIndirectGeoMap *cellMap) |
| helper function for deleting a key node from a geo typical map More... | |
| virtual void | keyNodeGettingDeleted (const osg::Group *child, DtCellToGeoSpecificIndirectGeoMap *cellMap) |
| helper function for deleting a key node from a geo specific map More... | |
| virtual void | slot_childAboutToPageOut (const osg::Group *page, const osg::Node *child) |
| 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 More... | |
| virtual bool | processProxyNodes (osg::Group *indirectGroup, const osg::Group *child, std::set< osg::Node * > &foundProxyNodes, osg::NodePath &parentalNodePath) |
| process all the proxy nodes under the child group. More... | |
| virtual void | processGeodes (osg::Group *indirectGroup, osg::Group *child, const std::string &fileName, const std::set< osg::Node * > &foundProxyNodes, bool backgroundThread, osg::NodePath &parentalNodePath) |
| process all the geodes that are not under proxy nodes in the specified child. More... | |
| virtual void | replaceChildWithGroup (const osg::Group *child, const osg::Group *childReplacement) |
| replace the child with the child replacement for its first parent More... | |
| virtual void | indirectThisChild (osg::Group *intersectionGroup, osg::Group *child, const std::string &fileName, bool backgroundThread, osg::NodePath &parentalNodePath) |
| internal method which turns a child into a indirected group More... | |
| virtual void | disconnectSignalsAndWait () |
| cleanup the signals and avoid any race conditions of other threads still in the slots when disconnecting More... | |
| virtual void | printHierarchy (const osg::Node *node) const |
| utility function for printing out the hierarchy of a node More... | |
| virtual void | removeNestedProxyNodes (ProxyNodesArray &proxyNodesArray) const |
| utility function for removing all nested proxy nodes More... | |
| virtual DtIndirectModelsContainer * | GTModelsContainer () |
| utility function to get access to indirect container More... | |
| virtual void | terrainSkinCellCreatedAndInstancesAdded (const DtCellGeoSpecificIndirectGeo *cell, const std::unordered_set< int > &instances) |
| internal method. called when a terrain skin cell is created. More... | |
| virtual void | terrainSkinCellGettingDeleted (const DtCellGeoSpecificIndirectGeo *cell) |
| internal method. called when a terrain skin cell is about to be deleted. More... | |
Protected Attributes | |
| DtDe & | myDe |
| DtCellToGeoTypicalIndirectGeoMap * | myCellToGTIndirectGeoMap |
| DtIndirectModelsContainer * | myGTModelsContainer |
| DtCellToGeoSpecificIndirectGeoMap * | myCellToGSIndirectGeoMapTerrainSkin |
| std::unordered_map< const DtCellGeoSpecificIndirectGeo *, std::unordered_set< int > > | myMapCelltoSetGeodesInCell |
| map of each cell to the set of instance ids (in the indirect geometry) for that cell More... | |
| boost::mutex | myMapCelltoSetGeodesInCellMutex |
| lock for the map above More... | |
| Connections | myConnections |
| The connected signals for paging. More... | |
| DtSignalConnectionManager | myOtherConnections |
| manager for other connections More... | |
| osg::ref_ptr < DtIndirectTextureLoaderNode > | myTextureLoaderNode |
| boost::mutex | mySignalMutex |
| boost::condition | mySignalConditional |
| int | mySignalWaitCount |
| bool | myAdjustLodStart |
| DtIndirectVisitorControlGroupCreator & | myIndirectGeoIntersectionGroupCreator |
| osg::Node * | myMetaflightGroupNode |
Friends | |
| class | DtPagedTilesIndirectManagerCreator |
| friend class creator so that it is the only thing that will create DtPageTilesIndirectManagers More... | |
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.
| 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
|
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.
|
friend |
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 |