22 #include <osgEarth/StateSetCache>
23 #include <osgEarth/Layer>
25 #include <osg/observer_ptr>
27 #include <boost/thread/mutex.hpp>
28 #include <boost/thread/condition_variable.hpp>
30 #include <tbb/atomic.h>
33 #include <unordered_map>
34 #include <unordered_set>
39 class SubstituteModelFilterNode;
40 class ExtrudeGeometryFilterNode;
51 class DtCellToGeoTypicalIndirectGeoMap;
52 class DtCellToGeoSpecificIndirectGeoMap;
53 class DtIndirectModelsContainer;
54 class DtModelSemanticsMapper;
55 class DtIndirectFeatureGeomHandler;
56 class DtCellIndirectGeo;
58 class DtIndirectModelContainerForHandlers;
59 class DtIndirectFeatureGeomHandlerSignaler;
98 virtual void onDataPremerge(osg::Node* data);
101 virtual void onDataUnloaded(
const osg::Node* data);
104 virtual void slot_postTick();
108 virtual void processSubstituteModelFilterNodes(osg::Node* data);
111 virtual void processExtrudeGeometryFilterNodes(osg::Node* data);
114 virtual void processExtrudeGeometryFilterNode(osgEarth::ExtrudeGeometryFilterNode* pFeatureNode, osg::Node* data);
120 virtual void processSubstituteModelFilterNode(
const osgEarth::SubstituteModelFilterNode* pFeatureNode,
const osg::Node* data);
123 virtual void processSubstituteModelFilterNodeAsGT(
const osgEarth::SubstituteModelFilterNode* pFeatureNode,
const osg::Group* keyNode);
126 virtual void processSubstituteModelFilterNodeAsGS(
const osgEarth::SubstituteModelFilterNode* pFeatureNode,
const osg::Group* keyNode);
130 virtual void processCustomFeatures(osg::Node* data);
136 virtual void setLayerMask(
const osgEarth::Layer* layer)
const;
139 virtual void turnOffIntersectionsIfSoSpecified(
const osgEarth::Layer* layer)
const;
149 osg::observer_ptr<const osgEarth::Layer>
myLayer;
friend DtIndirectFeatureGeomHandlerCreator
creator friend class so it is the only one that can create new DtIndirectFeatureGeomHandlers ...
Definition: DtIndirectFeatureGeomHandler.h:88
Helper for managing a map of feature tile nodes (for a layer) to DtCellGeoSpecificIndirectGeo DtCellG...
Definition: DtCellToGeoSpecificIndirectGeoMap.h:39
DtIndirectModelContainerForHandlers & myIndirectModelContainerForHandlers
Definition: DtIndirectFeatureGeomHandler.h:172
#define DT_DLL_VRVOSGEARTH
Definition: vrvOsgEarth.h:21
const bool myDynamicTerrainInstallerActive
Definition: DtIndirectFeatureGeomHandler.h:166
Helper for managing a map of feature tile nodes (for a layer) to DtCellGeoTypicalIndirectGeo DtCellGe...
Definition: DtCellToGeoTypicalIndirectGeoMap.h:39
osg::ref_ptr< osgEarth::StateSetCache > myStateSetCache
Definition: DtIndirectFeatureGeomHandler.h:162
DtIndirectModelsContainer * myGTModelsContainer
Definition: DtIndirectFeatureGeomHandler.h:153
The signaler object for the makVrv::DtTerrainPatchObject class.
Definition: DtIndirectFeatureGeomHandlerSignaler.h:29
class used to collect geometry coming in via feature_geom and add it to the indirect engine...
Definition: DtIndirectFeatureGeomHandler.h:77
const char * creatorTypeName< DtIndirectFeatureGeomHandler >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectFeatureGeomHandler.h:69
DtVirtualBaseClassCreator< DtIndirectFeatureGeomHandler, const osgEarth::Layer &, const DtIndirectFadeParameters &, const bool &, const bool & > DtIndirectFeatureGeomHandlerCreator
creator
Definition: DtIndirectFeatureGeomHandler.h:62
DtIndirectFadeParameters myFadeParameters
Definition: DtIndirectFeatureGeomHandler.h:164
class for holding an indirect geometry registrar (which holds the information about how to draw model...
Definition: DtIndirectModelsContainer.h:55
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
Custom Feature Node.
Definition: CustomFeatureNode.h:43
Contains the CustomFeatureNode class declaration.
const bool myCullFaceEnabled
Definition: DtIndirectFeatureGeomHandler.h:167
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Layer Handlers can request models that can be for a dynamic layer or not for a dynamic layer...
Definition: DtIndirectModelContainerForHandlers.h:35
struct for holding the fade parameters used by the indirect rendering cull compute shader ...
Definition: DtIndirectFadeParameters.h:17
DtIndirectFeatureGeomHandlerSignaler & mySignaler
Definition: DtIndirectFeatureGeomHandler.h:173
Base class to provide boost signal/slot management.
DtCellToGeoSpecificIndirectGeoMap * myCellToGSIndirectGeoMap
GeoSpecific stuff.
Definition: DtIndirectFeatureGeomHandler.h:156
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
DtCellToGeoTypicalIndirectGeoMap * myCellToGTIndirectGeoMap
GeoTypical stuff.
Definition: DtIndirectFeatureGeomHandler.h:152
DtCellToGeoSpecificIndirectGeoMap * myCellToProceduralGSIndirectGeoMap
Procedural stuff. Is also geospecific in the sense that each tile will have its own registrar...
Definition: DtIndirectFeatureGeomHandler.h:160
DtDe & myDe
Definition: DtIndirectFeatureGeomHandler.h:143
DtSignalConnectionManager myConnections
manager for connections
Definition: DtIndirectFeatureGeomHandler.h:170
Contains DLL export macros.
Contains makVrv::DtIndirectFadeParameters class.
osg::observer_ptr< const osgEarth::Layer > myLayer
store by observer ptr here onDataPremerge for a node can get launched (in another thread) just after ...
Definition: DtIndirectFeatureGeomHandler.h:149