19 #include <osg/Matrixd>
24 #include <unordered_set>
26 #include <boost/thread/condition.hpp>
36 class DtCellToGeoTypicalIndirectGeoMap;
37 class DtCellToGeoSpecificIndirectGeoMap;
38 class DtCellIndirectGeo;
39 class DtCellGeoTypicalIndirectGeo;
40 class DtCellGeoSpecificIndirectGeo;
41 class DtIndirectModelsContainer;
42 class DtIndirectVisitorControlGroupCreator;
43 struct DtNodePlusTraversalInfo;
48 #define DTPAGEDTILESINDIRECTMANAGER_PROXIES_USE_GT 1
84 virtual void setName(
const std::string& name);
90 virtual void nodePagedIn(
const osg::Node* node,
const std::string& fileName, osg::NodePath& parentalNodePath);
95 virtual void nodePagingOut(
const osg::Node* node);
100 virtual void addTextureLoaderToSceneGraph(osg::Group& myTerrainGroup);
105 virtual void slot_postTick();
108 virtual void setMetaflightGroup(osg::Node* node);
119 virtual void slot_childLoaded(
const osg::Group* page,
const osg::Node* child,
const std::string& fileName, osg::Node*& returnedNode);
122 virtual bool shouldHandlePage(
const osg::Group* page);
128 virtual void slot_childPagedIn(
const osg::Group* page,
const osg::Node* child);
132 virtual void indirectChildFromPageIn(
const osg::Group* page,
const osg::Node* child,
const std::string& fileName, osg::NodePath& parentalNodePath);
144 virtual void slot_childAboutToPageOut(
const osg::Group* page,
const osg::Node* child);
149 virtual bool processProxyNodes(osg::Group *indirectGroup,
const osg::Group* child, std::set<osg::Node*>& foundProxyNodes,
150 osg::NodePath& parentalNodePath);
153 virtual void processGeodes(osg::Group* indirectGroup, osg::Group* child,
const std::string& fileName,
154 const std::set<osg::Node*>& foundProxyNodes,
bool backgroundThread, osg::NodePath& parentalNodePath);
157 virtual void replaceChildWithGroup(
const osg::Group* child,
const osg::Group* childReplacement);
160 virtual void indirectThisChild(osg::Group* intersectionGroup, osg::Group* child,
const std::string& fileName,
161 bool backgroundThread, osg::NodePath& parentalNodePath);
164 virtual void disconnectSignalsAndWait();
167 virtual void printHierarchy(
const osg::Node* node)
const;
170 virtual void removeNestedProxyNodes(
ProxyNodesArray& proxyNodesArray)
const;
176 virtual void terrainSkinCellCreatedAndInstancesAdded(
const DtCellGeoSpecificIndirectGeo* cell,
const std::unordered_set<int>& instances);
184 #if DTPAGEDTILESINDIRECTMANAGER_PROXIES_USE_GT
237 static const std::string& theClassName();
boost::mutex myMapCelltoSetGeodesInCellMutex
lock for the map above
Definition: DtPagedTilesIndirectManager.h:197
Virtual base class.
Definition: DtVirtualBaseClass.h:19
Helper for managing a map of feature tile nodes (for a layer) to DtCellGeoSpecificIndirectGeo DtCellG...
Definition: DtCellToGeoSpecificIndirectGeoMap.h:39
DtCellToGeoSpecificIndirectGeoMap * myCellToGSIndirectGeoMapTerrainSkin
Definition: DtPagedTilesIndirectManager.h:191
handles the management of paged tiles and terrain patches being added to the indirect rendering syste...
Definition: DtPagedTilesIndirectManager.h:55
DtIndirectVisitorControlGroupCreator & myIndirectGeoIntersectionGroupCreator
Definition: DtPagedTilesIndirectManager.h:214
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: featureContext.h:37
boost::mutex mySignalMutex
Definition: DtPagedTilesIndirectManager.h:210
std::vector< DtNodePlusTraversalInfo > ProxyNodesArray
Definition: DtPagedTilesIndirectManager.h:81
DtIndirectModelsContainer * myGTModelsContainer
Definition: DtPagedTilesIndirectManager.h:186
Connections myConnections
The connected signals for paging.
Definition: DtPagedTilesIndirectManager.h:203
bool myAdjustLodStart
Definition: DtPagedTilesIndirectManager.h:213
Helper for managing a map of feature tile nodes (for a layer) to DtCellGeoTypicalIndirectGeo DtCellGe...
Definition: DtCellToGeoTypicalIndirectGeoMap.h:39
creator for DtIndirectVisitorControlGroup
Definition: DtIndirectVisitorControlGroup.h:56
osg::Node * myMetaflightGroupNode
Definition: DtPagedTilesIndirectManager.h:215
class for holding an indirect geometry registrar (which holds the information about how to draw model...
Definition: DtIndirectModelsContainer.h:43
Contains makVrv::DtVirtualBaseClass class.
DtDe & myDe
Definition: DtPagedTilesIndirectManager.h:239
boost::signalslib::signal< void(const DtPagedTilesIndirectManager &)> signal_terrainInstancesReadyToRender
Emitted when instances of the terrain skin are ready to render.
Definition: DtPagedTilesIndirectManager.h:112
std::vector< boost::signalslib::connection > Connections
A collection of signals.
Definition: DtPagedTilesIndirectManager.h:200
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtDe & myDe
Definition: DtPagedTilesIndirectManager.h:182
osg::ref_ptr< DtIndirectTextureLoaderNode > myTextureLoaderNode
Definition: DtPagedTilesIndirectManager.h:208
boost::condition mySignalConditional
Definition: DtPagedTilesIndirectManager.h:211
Helper for managing indirect geometry, its intersection group and registrar corresponding to a 'tile ...
Definition: DtCellGeoSpecificIndirectGeo.h:26
int mySignalWaitCount
Definition: DtPagedTilesIndirectManager.h:212
Contains makVrv::DtIndirectTextureLoaderNode class.
Base class to provide boost signal/slot management.
Contains DLL export macros.
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 ...
Definition: DtPagedTilesIndirectManager.h:194
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Creator for the DtPagedTilesIndirectManager class.
Definition: DtPagedTilesIndirectManager.h:220
DtSignalConnectionManager myOtherConnections
manager for other connections
Definition: DtPagedTilesIndirectManager.h:206
DtCellToGeoTypicalIndirectGeoMap * myCellToGTIndirectGeoMap
Definition: DtPagedTilesIndirectManager.h:185