24 #include <osgSim/MultiSwitch>
26 #include <osg/ref_ptr>
27 #include <osg/observer_ptr>
47 struct PerGeomInstance;
48 class DtInstanceContainer;
49 class DtDynamicTerrainSwitchNode;
50 class DtSwitchInstanceState;
110 virtual void update(
const osg::FrameStamp* frameStamp);
113 virtual void processSwitches(
void);
116 virtual void releaseGLObjects(osg::State* state)
const;
119 virtual const DtGlBuffer* gpuSwitchStateBuffer(
void)
const;
127 virtual void addSwitch(
NodeSwitchInfoPair& switchChildPair,
int bitMaskId,
int perGeomInstanceIndex,
const osg::NodePath& parentNodePath,
int uniqueId);
133 virtual void updateSwitches(
void);
136 virtual void updateMultiSwitches(
void);
139 virtual void updateSequences(
const osg::FrameStamp* frameStamp);
142 virtual void updateSwitchStateBufferIfNecessary(
void);
145 virtual void deleteBuffers(
void);
148 virtual void tearDownBuffers(
void)
const;
154 virtual void addSequence(osg::Sequence* sequence,
int instanceId);
180 void operator()(
int& info);
Contains makVrv::DtIndirectSwitchInfo struct.
parent manager class for all Indirect managers. Managers handle information about a specific feature ...
Definition: DtIndirectManager.h:26
DtDynamicTerrainSwitchNode replaces an osgSim::multiswitch in a terrain patch (or page) that is tagge...
Definition: DtDynamicTerrainSwitchNode.h:74
size_t NodePathHash
Typedef used to represent a hash of an OSG Node path to a referenced node.
Definition: DtMultiReferencedNodeContainer.h:25
std::set< DtDynamicTerrainSwitchNode * > mySetDynamicTerrainSwitchNodes
Definition: DtIndirectSwitchManager.h:160
std::map< int, VectorIndirectSwitchInfos > MapIntToVectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:80
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
handles the switches for all the indirect geometry. Sets up the default state of osg::Switch, osgSim::MultiSwitch, and DtDynamicTerrainSwitchNode. Connects to a signal for the DtDynamicTerrainSwitchNode so it can update the indirect buffer when a switch changes. saves off the node path hash for every switch path that is added. Owned by a DtIndirectGeometry 1:1 This manager's switches get updated per frame via looking at the actual switches/multi-switches
Definition: DtIndirectSwitchManager.h:70
Contains makVrv::DtIndirectManager class.
voidpf void uLong size
Definition: ioapi.h:39
friend DtIndirectSwitchManagerCreator
only creator can create
Definition: DtIndirectSwitchManager.h:85
std::deque< NodeSwitchInfoPair > DequeNodeSwitchInfoPairs
Definition: DtIndirectSwitchManager.h:76
const char * creatorTypeName< DtIndirectSwitchManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectSwitchManager.h:62
DtGlBuffer * myGpuSwitchStateBuffer
Definition: DtIndirectSwitchManager.h:188
MapSequenceToValue myMapSequenceToValue
Definition: DtIndirectSwitchManager.h:164
std::map< NodeObserverPtr, MapIntToVectorIndirectSwitchInfos > MapNodeToMapIntToVectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:81
VectorSwitchesOffBitMask myVectorSwitchesOffBitMask
Definition: DtIndirectSwitchManager.h:186
DtSignalConnectionManager myConnections
Definition: DtIndirectSwitchManager.h:175
MapSwitchToValueList myMapSwitchToValueList
Definition: DtIndirectSwitchManager.h:168
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
MapMultiSwitchToValueList myMapMultiSwitchToValueList
Definition: DtIndirectSwitchManager.h:172
osg::observer_ptr< osg::Node > NodeObserverPtr
Definition: DtIndirectSwitchManager.h:74
Contains makVrv::DtVirtualBaseClass class.
MapNodeToMapIntToVectorIndirectSwitchInfos myMapNodeToVectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:158
bool myMutableSwitchesDirty
Definition: DtIndirectSwitchManager.h:176
std::map< osg::Sequence *, unsigned int > MapSequenceToValue
Definition: DtIndirectSwitchManager.h:163
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::map< osg::Switch *, osg::Switch::ValueList > MapSwitchToValueList
Definition: DtIndirectSwitchManager.h:167
DtVirtualBaseClassCreator< DtIndirectSwitchManager, DtInstanceContainer & > DtIndirectSwitchManagerCreator
creator
Definition: DtIndirectSwitchManager.h:55
std::pair< NodeObserverPtr, DtIndirectSwitchInfo > NodeSwitchInfoPair
Definition: DtIndirectSwitchManager.h:75
std::vector< DequeNodeSwitchInfoPairs > DequeNodeSwitchInfoPairsArray
Definition: DtIndirectSwitchManager.h:77
A generic OpenGL buffer. This can be: -> a vertex buffer -> an index buffer -> a shader storage buffe...
Definition: DtGlBuffer.h:29
Contains makVrv::DtMultiReferencedNodeContainer class.
std::map< osgSim::MultiSwitch *, osgSim::MultiSwitch::ValueList > MapMultiSwitchToValueList
Definition: DtIndirectSwitchManager.h:171
Base class to provide boost signal/slot management.
Contains makVrv::DtReusableMemoryVector class.
std::vector< DtIndirectSwitchInfo > VectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:79
Definition: DtIndirectSwitchManager.h:178
structure for holding the information about a particular instance of a particular switch...
Definition: DtIndirectSwitchInfo.h:25
Contains DLL export macros.
DtReusableMemoryVector< int, SwitchesOffBitMaskInvalidator > VectorSwitchesOffBitMask
Definition: DtIndirectSwitchManager.h:185
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:70
Helper class to manage instances This class allows you to add a DtInstance_64 Internally, however it stores this as a DtInstance (which the GPU can directly read)
Definition: DtInstanceContainer.h:31