19 #include <osg/Matrixd>
23 #include <unordered_map>
26 #define DTCELLINDIRECTGEO_CONSTRUCT_DESTRUCT_DEBUG 0
31 class DtCullShaderConfig;
32 class DtIndirectModelsContainer;
33 class DtIndirectGeometry;
34 class DtIndirectFadeParameters;
35 class DtCullShaderConfig;
73 std::function<void(const osg::ref_ptr<osg::Group>& origionalNode,
osg::ref_ptr<osg::Group>& newRootNode, osg::NodePath& newNodePath)> myNodeInsertionCallback;
85 ,
bool includeIntersectionGeoInNodePath
108 virtual void setParent(
const osg::Group* parent);
115 virtual const osg::BoundingBoxd& boundingBox(
void)
const;
123 virtual osg::Group* indirectIntersectionGroup();
131 virtual const std::unordered_map<int, int>& modelIdToNumInstances(
void)
const;
136 virtual void expandBoundingBox(
const osg::Node* modelNode,
const osg::Matrixd& instanceXForm);
142 #if DTCELLINDIRECTGEO_CONSTRUCT_DESTRUCT_DEBUG
143 static std::atomic<int> myBaseRefCount;
DtDe & myDe
Definition: DtCellIndirectGeo.h:153
osg::ref_ptr< osg::Group > myIndirectGeoIntersectionGroup
Definition: DtCellIndirectGeo.h:147
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Helper structure for adding instances to DtCellIndirectGeo.
Definition: DtCellIndirectGeo.h:39
bool myAddTopLevelSwitch
Definition: DtCellIndirectGeo.h:63
std::deque< NodeSwitchInfoPair > DequeNodeSwitchInfoPairs
Definition: DtIndirectSwitchManager.h:76
osg::NodePath myNodePath
Definition: DtCellIndirectGeo.h:61
shader configuration storage class. Has 3 available options which are described in the constructor's ...
Definition: DtCullShaderConfig.h:21
DtIndirectDofManager::DequeNodeDofInfoPairs myDofStack
Definition: DtCellIndirectGeo.h:67
bool myIncludeIntersectionGeoInNodePath
Definition: DtCellIndirectGeo.h:156
osg::ref_ptr< DtIndirectGeometry > myIndirectGeometry
Definition: DtCellIndirectGeo.h:146
class for holding an indirect geometry registrar (which holds the information about how to draw model...
Definition: DtIndirectModelsContainer.h:55
Helper for managing indirect geometry, its intersection group and registrar corresponding to a 'tile ...
Definition: DtCellIndirectGeo.h:79
std::deque< NodeDofInfoPair > DequeNodeDofInfoPairs
Definition: DtIndirectDofManager.h:76
Contains makVrv::DtIndirectDofManager class.
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:120
DtIndirectSwitchManager::DequeNodeSwitchInfoPairs mySwitchStack
Definition: DtCellIndirectGeo.h:66
const osg::Node * myModelNode
Definition: DtCellIndirectGeo.h:59
struct for holding the fade parameters used by the indirect rendering cull compute shader ...
Definition: DtIndirectFadeParameters.h:17
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
bool myFirstInstance
Definition: DtCellIndirectGeo.h:154
int myModelId
Definition: DtCellIndirectGeo.h:57
Contains makVrv::DtIndirectSwitchManager class.
DtIndirectLodManager::DequeIndirectLodInfos myLodStack
Definition: DtCellIndirectGeo.h:65
bool myAddToIntersectionGroup
Definition: DtCellIndirectGeo.h:62
osg::BoundingBoxd myBoundingBox
bounding box computation management
Definition: DtCellIndirectGeo.h:150
DtIndirectGeometrySubType
Definition: DtIndirectGeometrySubType.h:16
Contains makVrv::DtIndirectLodManager class.
Contains DLL export macros.
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
bool myOwnsModelsContainer
Definition: DtCellIndirectGeo.h:140
std::deque< IndirectLodInfo > DequeIndirectLodInfos
Definition: DtIndirectLodManager.h:67
const osg::Matrixd & myInstanceXForm
Definition: DtCellIndirectGeo.h:58
DtIndirectModelsContainer * myModelsContainer
Definition: DtCellIndirectGeo.h:139
std::unordered_map< int, int > myModelIdToNumInstances
Definition: DtCellIndirectGeo.h:158
Threading::Mutex myMutableBoundingBoxMutex
Definition: DtCellIndirectGeo.h:151