VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectSignalBasedSwitchManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2023 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
15 
16 namespace osg
17 {
18  class Sequence;
19  class FrameStamp;
20 }
21 
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtInstanceContainer;
27 
30 
33 
35  template <>
36  inline const char* creatorTypeName<DtIndirectSignalBasedSwitchManager>(void) { return "DtIndirectSignalBasedSwitchManagerCreator"; }
37 
44  {
45  public:
48 
51  protected:
54 
55  private:
62 
63  public:
65  virtual void update(const osg::FrameStamp* frameStamp) override;
66 
68  virtual void removeSwitchPaths(int instanceId);
69 
72  virtual void slot_setSwitch(osgSim::MultiSwitch* clone, osgSim::MultiSwitch* master, int instanceId);
73 
75  virtual bool slot_setSequence(osg::Sequence* clone, osg::Sequence* master, int instanceId);
76 
78  virtual void printInfo();
79 
80  protected:
82  virtual void addSequence(osg::Sequence* sequence, int instanceId) override;
83 
85  virtual void updateActiveSequences(const osg::FrameStamp* frameStamp);
86  protected:
87  //Map the master to the clone or in the default case the master to the master
89  {
90  public:
91  osg::Sequence* mySequence;
92  unsigned int myValue;
93  };
94  typedef std::map<osg::Sequence*, SequenceAndValue > MapOfSequences;
95  typedef std::map<int, MapOfSequences> MapInstanceToMapOfSequences;
97  };
98 }
99 
100 
virtual bool slot_setSequence(osg::Sequence *clone, osg::Sequence *master, int instanceId)
set the sequence
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&#39;s switches get updated per frame via looking at the actual switches/multi-switches
Definition: DtIndirectSwitchManager.h:70
DtVirtualBaseClassCreator< DtIndirectSignalBasedSwitchManager, DtInstanceContainer & > DtIndirectSignalBasedSwitchManagerCreator
creator
Definition: DtIndirectSignalBasedSwitchManager.h:29
unsigned int myValue
Definition: DtIndirectSignalBasedSwitchManager.h:92
DtIndirectSignalBasedSwitchManager & operator=(const DtIndirectSwitchManager &other)=delete
Assignment Operator Not implemented – Assignment Not Allowed.
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. The representative &#39;master&#39; tha...
virtual void updateActiveSequences(const osg::FrameStamp *frameStamp)
update
MapInstanceToMapOfSequences myActiveMapSequenceToInfo
Definition: DtIndirectSignalBasedSwitchManager.h:96
osg::Sequence * mySequence
Definition: DtIndirectSignalBasedSwitchManager.h:91
virtual void printInfo()
print out the info of what&#39;s contained in the maps
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
Definition: DtIndirectSignalBasedSwitchManager.h:88
virtual void update(const osg::FrameStamp *frameStamp) override
override of DtIndirectSwitchManager::update
This is used for entities indicate whether this manager&#39;s switches get updated directly using signals...
Definition: DtIndirectSignalBasedSwitchManager.h:43
virtual void addSequence(osg::Sequence *sequence, int instanceId) override
add a sequence
Contains makVrv::DtIndirectSwitchManager class.
std::map< osg::Sequence *, SequenceAndValue > MapOfSequences
Definition: DtIndirectSignalBasedSwitchManager.h:94
std::map< int, MapOfSequences > MapInstanceToMapOfSequences
Definition: DtIndirectSignalBasedSwitchManager.h:95
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:76
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
const char * creatorTypeName< DtIndirectSignalBasedSwitchManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectSignalBasedSwitchManager.h:36
friend DtIndirectSignalBasedSwitchManagerCreator
only creator can create
Definition: DtIndirectSignalBasedSwitchManager.h:47
DtIndirectSignalBasedSwitchManager()=delete
default constructor not implemented
virtual void removeSwitchPaths(int instanceId)
remove the switch paths/infos associated with an instance

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)