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;
105 virtual void removeSwitchPaths(
int instanceId);
112 virtual void slot_setSwitch(osgSim::MultiSwitch* clone, osgSim::MultiSwitch* master,
int instanceId);
114 virtual void slot_setSequence(osg::Sequence* clone, osg::Sequence* master,
int instanceId);
117 virtual void update(
const osg::FrameStamp* frameStamp);
119 virtual void updateActiveSequences(
const osg::FrameStamp* frameStamp);
122 virtual void setPureSignalBasedSwitches(
bool val);
126 virtual bool pureSignalBasedSwitches(
void)
const;
129 virtual void processSwitches(
void);
132 virtual void releaseGLObjects(osg::State* state)
const;
135 virtual const DtGlBuffer* gpuSwitchStateBuffer(
void)
const;
143 virtual void addSwitch(
NodeSwitchInfoPair& switchChildPair,
int bitMaskId,
int perGeomInstanceIndex,
const osg::NodePath& parentNodePath,
int uniqueId);
149 virtual void updateSwitches(
void);
152 virtual void updateMultiSwitches(
void);
155 virtual void updateSequences(
const osg::FrameStamp* frameStamp);
158 virtual void printInfo();
161 virtual void updateSwitchStateBufferIfNecessary(
void);
164 virtual void deleteBuffers(
void);
167 virtual void tearDownBuffers(
void)
const;
206 void operator()(
int& info);
Contains makVrv::DtIndirectSwitchInfo struct.
parent manager class for all Indirect managers.
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: DtIndirectSwitchInfo.h:23
std::set< DtDynamicTerrainSwitchNode * > mySetDynamicTerrainSwitchNodes
Definition: DtIndirectSwitchManager.h:176
std::map< int, VectorIndirectSwitchInfos > MapIntToVectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:79
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
handles the switches for all the indirect geometry.
Definition: DtIndirectSwitchManager.h:69
Contains makVrv::DtIndirectManager class.
bool myPureSignalBasedSwitches
Definition: DtIndirectSwitchManager.h:216
voidpf void uLong size
Definition: ioapi.h:39
friend DtIndirectSwitchManagerCreator
only creator can create
Definition: DtIndirectSwitchManager.h:84
std::deque< NodeSwitchInfoPair > DequeNodeSwitchInfoPairs
Definition: DtIndirectSwitchManager.h:75
std::map< int, MapOfSequences > MapInstanceToMapOfSequences
Definition: DtIndirectSwitchManager.h:198
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:214
MapSequenceToValue myMapSequenceToValue
Definition: DtIndirectSwitchManager.h:180
std::map< NodeObserverPtr, MapIntToVectorIndirectSwitchInfos > MapNodeToMapIntToVectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:80
VectorSwitchesOffBitMask myVectorSwitchesOffBitMask
Definition: DtIndirectSwitchManager.h:212
DtSignalConnectionManager myConnections
Definition: DtIndirectSwitchManager.h:201
MapSwitchToValueList myMapSwitchToValueList
Definition: DtIndirectSwitchManager.h:184
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
MapMultiSwitchToValueList myMapMultiSwitchToValueList
Definition: DtIndirectSwitchManager.h:188
osg::observer_ptr< osg::Node > NodeObserverPtr
Definition: DtIndirectSwitchManager.h:73
Contains makVrv::DtVirtualBaseClass class.
MapNodeToMapIntToVectorIndirectSwitchInfos myMapNodeToVectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:174
bool myMutableSwitchesDirty
Definition: DtIndirectSwitchManager.h:202
std::map< osg::Sequence *, unsigned int > MapSequenceToValue
Definition: DtIndirectSwitchManager.h:179
unsigned int myValue
Definition: DtIndirectSwitchManager.h:195
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::map< osg::Switch *, osg::Switch::ValueList > MapSwitchToValueList
Definition: DtIndirectSwitchManager.h:183
DtVirtualBaseClassCreator< DtIndirectSwitchManager, DtInstanceContainer & > DtIndirectSwitchManagerCreator
creator
Definition: DtIndirectSwitchManager.h:55
Definition: DtIndirectSwitchManager.h:191
std::pair< NodeObserverPtr, DtIndirectSwitchInfo > NodeSwitchInfoPair
Definition: DtIndirectSwitchManager.h:74
std::vector< DequeNodeSwitchInfoPairs > DequeNodeSwitchInfoPairsArray
Definition: DtIndirectSwitchManager.h:76
osg::Sequence * mySequence
Definition: DtIndirectSwitchManager.h:194
A generic OpenGL buffer.
Definition: DtGlBuffer.h:27
Contains makVrv::DtMultiReferencedNodeContainer class.
std::map< osgSim::MultiSwitch *, osgSim::MultiSwitch::ValueList > MapMultiSwitchToValueList
Definition: DtIndirectSwitchManager.h:187
Base class to provide boost signal/slot management.
Contains makVrv::DtReusableMemoryVector class.
std::vector< DtIndirectSwitchInfo > VectorIndirectSwitchInfos
Definition: DtIndirectSwitchManager.h:78
Definition: DtIndirectSwitchManager.h:204
structure for holding the information about a particular instance of a particular switch...
Definition: DtIndirectSwitchInfo.h:31
Contains DLL export macros.
DtReusableMemoryVector< int, SwitchesOffBitMaskInvalidator > VectorSwitchesOffBitMask
Definition: DtIndirectSwitchManager.h:211
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
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
std::map< osg::Sequence *, SequenceAndValue > MapOfSequences
Definition: DtIndirectSwitchManager.h:197
MapInstanceToMapOfSequences myActiveMapSequenceToInfo
Definition: DtIndirectSwitchManager.h:199