![]() |
VR-Forces 4.10 Class Documentation
|
handles the switches for all the indirect geometry. More...

Classes | |
| struct | SequenceAndValue |
| struct | SwitchesOffBitMaskInvalidator |
Public Types | |
| typedef osg::observer_ptr < osg::Node > | NodeObserverPtr |
| typedef std::pair < NodeObserverPtr, DtIndirectSwitchInfo > | NodeSwitchInfoPair |
| typedef std::deque < NodeSwitchInfoPair > | DequeNodeSwitchInfoPairs |
| typedef std::vector < DequeNodeSwitchInfoPairs > | DequeNodeSwitchInfoPairsArray |
| typedef std::vector < DtIndirectSwitchInfo > | VectorIndirectSwitchInfos |
| typedef std::map< int, VectorIndirectSwitchInfos > | MapIntToVectorIndirectSwitchInfos |
| typedef std::map < NodeObserverPtr, MapIntToVectorIndirectSwitchInfos > | MapNodeToMapIntToVectorIndirectSwitchInfos |
Public Types inherited from makVrv::DtIndirectManager | |
| enum | ManagerTypes { BaseClass, LodManager, SwitchManager, DofManager, UvOffsetManager, PerInstanceDataManager } |
Public Member Functions | |
| virtual | ~DtIndirectSwitchManager () |
| DTOR. More... | |
| virtual void | addSwitchPaths (int perGeomInstanceIndex, int size, const DequeNodeSwitchInfoPairs &parentSwitchPaths, const DequeNodeSwitchInfoPairsArray &switchPaths, const osg::NodePath &parentNodePath, int instanceId) |
| Add a list of switch paths to the switch manager. Once added they are connected to the signal so changes can be passed down to the indirect buffer. More... | |
| virtual void | removeSwitchPaths (int instanceId) |
| remove the switch paths/infos associated with an instance More... | |
| virtual void | slot_setSwitchDynamicTerrainSwitchNode (DtDynamicTerrainSwitchNode *switchNode, DynamicTerrain::NodePathHash nodePathHash, int childIdx) |
| slot for handling DtDynamicTerrainSwitchNode switch state changes. More... | |
| virtual void | slot_setSwitch (osgSim::MultiSwitch *clone, osgSim::MultiSwitch *master, int instanceId) |
| set the multi-switch state of an instance/clone, with an instance id. More... | |
| virtual void | slot_setSequence (osg::Sequence *clone, osg::Sequence *master, int instanceId) |
| virtual void | update (const osg::FrameStamp *frameStamp) |
| update sequences (with special handling of dynamic terrain sequences), switches, multi-switches when pure signal based switches is true, this function does nothing More... | |
| virtual void | updateActiveSequences (const osg::FrameStamp *frameStamp) |
| virtual void | setPureSignalBasedSwitches (bool val) |
| indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals More... | |
| virtual bool | pureSignalBasedSwitches (void) const |
| indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals More... | |
| virtual void | processSwitches (void) |
| process the switches. TO DO: do this in compute shader More... | |
| virtual void | releaseGLObjects (osg::State *state) const |
| release gl objects More... | |
| virtual const DtGlBuffer * | gpuSwitchStateBuffer (void) const |
| get the buffer that holds the gpu swtich state information More... | |
Public Member Functions inherited from makVrv::DtIndirectManager | |
| DtIndirectManager (DtDe &de, DtInstanceContainer &container) | |
| CTOR. More... | |
| virtual | ~DtIndirectManager () |
| DTOR. More... | |
Public Attributes | |
| friend | DtIndirectSwitchManagerCreator |
| only creator can create More... | |
Protected Types | |
| typedef std::map < osg::Sequence *, unsigned int > | MapSequenceToValue |
| typedef std::map< osg::Switch *, osg::Switch::ValueList > | MapSwitchToValueList |
| typedef std::map < osgSim::MultiSwitch *, osgSim::MultiSwitch::ValueList > | MapMultiSwitchToValueList |
| typedef std::map < osg::Sequence *, SequenceAndValue > | MapOfSequences |
| typedef std::map< int, MapOfSequences > | MapInstanceToMapOfSequences |
| typedef DtReusableMemoryVector < int, SwitchesOffBitMaskInvalidator > | VectorSwitchesOffBitMask |
Protected Member Functions | |
| DtIndirectSwitchManager (DtDe &de, DtInstanceContainer &container) | |
| CTOR. only creator can create. More... | |
| virtual void | addSwitchPath (int perGeomInstanceIndex, const DequeNodeSwitchInfoPairs &parentSwitchPaths, const DequeNodeSwitchInfoPairs &switchPath, const osg::NodePath &parentNodePath, int instanceId) |
| Adds a single per geometry instances switch paths. Each switch is assigned a bit in the instances switch off mask. More... | |
| virtual void | addSwitch (NodeSwitchInfoPair &switchChildPair, int bitMaskId, int perGeomInstanceIndex, const osg::NodePath &parentNodePath, int uniqueId) |
| Adds a single switch for a single per geometry instance. More... | |
| virtual bool | checkSwitchChildActive (osg::ref_ptr< osg::Node > nodeRefPtr, int childIndex, DynamicTerrain::NodePathHash pathHash) |
| utility function for checking the switch state for osg::Switch, osgSim::MutliSwitch and DtDynamicTerrainSwitchNode classes. More... | |
| virtual void | updateSwitches (void) |
| update the switches More... | |
| virtual void | updateMultiSwitches (void) |
| update the multi-switches More... | |
| virtual void | updateSequences (const osg::FrameStamp *frameStamp) |
| update sequences (with special handling of dynamic terrain sequences) More... | |
| virtual void | printInfo () |
| print out the info of what's contained in the maps More... | |
| virtual void | updateSwitchStateBufferIfNecessary (void) |
| update the gpu side buffer if switches are dirty More... | |
| virtual void | deleteBuffers (void) |
| delete the buffers More... | |
| virtual void | tearDownBuffers (void) const |
| tear down More... | |
| virtual void | updateSwitch (const DtIndirectSwitchInfo &info, bool isSwitchChildActive) |
| Update a single switch given by 'info'. More... | |
Private Member Functions | |
| DtIndirectSwitchManager ()=delete | |
| default constructor not implemented More... | |
| DtIndirectSwitchManager (const DtIndirectSwitchManager &other)=delete | |
| Copy Constructor not implemented – Copy Not Allowed. More... | |
| DtIndirectSwitchManager & | operator= (const DtIndirectSwitchManager &other)=delete |
| Assignment Operator Not implemented – Assignment Not Allowed. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from makVrv::DtIndirectManager | |
| static int | managerType () |
| what type of manager is this class More... | |
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
| typedef osg::observer_ptr<osg::Node> makVrv::DtIndirectSwitchManager::NodeObserverPtr |
| typedef std::pair<NodeObserverPtr, DtIndirectSwitchInfo> makVrv::DtIndirectSwitchManager::NodeSwitchInfoPair |
| typedef std::deque<NodeSwitchInfoPair> makVrv::DtIndirectSwitchManager::DequeNodeSwitchInfoPairs |
| typedef std::vector<DequeNodeSwitchInfoPairs> makVrv::DtIndirectSwitchManager::DequeNodeSwitchInfoPairsArray |
| typedef std::vector<DtIndirectSwitchInfo> makVrv::DtIndirectSwitchManager::VectorIndirectSwitchInfos |
| typedef std::map<int, VectorIndirectSwitchInfos> makVrv::DtIndirectSwitchManager::MapIntToVectorIndirectSwitchInfos |
| typedef std::map<NodeObserverPtr, MapIntToVectorIndirectSwitchInfos > makVrv::DtIndirectSwitchManager::MapNodeToMapIntToVectorIndirectSwitchInfos |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
DTOR.
|
protected |
CTOR. only creator can create.
|
privatedelete |
default constructor not implemented
|
privatedelete |
Copy Constructor not implemented – Copy Not Allowed.
|
privatedelete |
Assignment Operator Not implemented – Assignment Not Allowed.
|
virtual |
Add a list of switch paths to the switch manager. Once added they are connected to the signal so changes can be passed down to the indirect buffer.
|
virtual |
remove the switch paths/infos associated with an instance
|
virtual |
slot for handling DtDynamicTerrainSwitchNode switch state changes.
|
virtual |
set the multi-switch state of an instance/clone, with an instance id.
The representative 'master' that is in the indirect switch manager is the parameter 'master'
|
virtual |
|
virtual |
update sequences (with special handling of dynamic terrain sequences), switches, multi-switches when pure signal based switches is true, this function does nothing
|
virtual |
|
virtual |
indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals
|
virtual |
indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals
|
virtual |
process the switches. TO DO: do this in compute shader
|
virtual |
release gl objects
|
virtual |
get the buffer that holds the gpu swtich state information
|
protectedvirtual |
Adds a single per geometry instances switch paths. Each switch is assigned a bit in the instances switch off mask.
|
protectedvirtual |
Adds a single switch for a single per geometry instance.
|
protectedvirtual |
utility function for checking the switch state for osg::Switch, osgSim::MutliSwitch and DtDynamicTerrainSwitchNode classes.
|
protectedvirtual |
update the switches
|
protectedvirtual |
update the multi-switches
|
protectedvirtual |
update sequences (with special handling of dynamic terrain sequences)
|
protectedvirtual |
print out the info of what's contained in the maps
|
protectedvirtual |
update the gpu side buffer if switches are dirty
|
protectedvirtual |
delete the buffers
|
protectedvirtual |
tear down
|
protectedvirtual |
Update a single switch given by 'info'.
| friend makVrv::DtIndirectSwitchManager::DtIndirectSwitchManagerCreator |
only creator can create
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |