VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtBaseConnection.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvCore/vrvCore.h>
12 #include <vrvCore/DtUniqueID.h>
16 #include <vrvUtil/templateUtil.h>
17 #include <vrvUtil/DtUnicode.h>
18 #include <vrvUtil/signalslib.h>
19 
20 #include <string>
21 
22 namespace makVrv
23 {
24  class DtSharedSettingsManager;
25  class DtAgentManagerInterface;
26  class DtElementChanges;
27  class DtElementAttribute;
28  class DtBlinkingObjectManager;
29  class DtTemporaryAgentManager;
30  class DtMouseState;
31  class DtCoordinateSystem;
32 
36  {
37 
38  public:
41  DtAgentManagerInterface& aSceneInterface,
42  const DtCoordinateSystem& coordSystem);
43 
46  DtAgentManagerInterface& aSceneInterface);
47 
50  virtual ~DtBaseConnection();
51 
54  virtual void clearInstances();
55 
57  virtual void coordinateSystemChanged(const std::string& coordinateName, const std::string& coordinateOrigin);
58 
60  const DtCoordinateSystem& coordinateSystem() const;
61 
63  DtSharedSettingsManager& settingsManager();
64 
66  virtual DtAgentManagerInterface& sceneInterface();
67 
69  const DtSharedSettingsManager& settingsManager() const;
70 
72  DtVisualizerCreationSettings& visualizerCreationSettings();
73 
75  void reportElementCreated(DtElementID id, DtElementID parentId, unsigned int type);
76 
77  //The attribute passed in should not be used again.
78  void reportElementAttribute(DtElementID id, DtElementAttribute* attribute);
79 
81  void reportElementDestroyed(DtElementID id);
82 
84  const DtElementChanges& currentElementChanges() const;
85 
87  DtElementChanges* takeElementChanges();
88 
90  DtTemporaryAgentManager& temporaryEffects();
91 
93  DtBlinkingObjectManager& blinkManager();
94 
96  DtRandomNumberGenerator& randomNumberGenerator();
97 
99  virtual const std::string& tag()
100  {
101  const static std::string tagStr = "";
102  return tagStr;
103  }
104 
106  const DtUnicode& emptyString() const;
107 
113  virtual DtVirtualBaseClass* findInstance(const std::string& instanceName);
114 
128  inline bool destroyingInstances() const
129  {
130  return myDestroyingInstanceFlag;
131  }
132 
135  virtual void registerInstance(const std::string& instanceName,
136  DtVirtualBaseClass* instance);
137 
139  vrvSignalsLib::signal<void()> signal_coordinateSystemChanged;
140 
142  boost::signalslib::signal<void()> signal_preConnectionTick;
143 
145  boost::signalslib::signal<void()> signal_postConnectionTick;
146  protected:
147 
150 
153 
158 
161 
164 
167 
169 
170  using InstanceMap = std::unordered_map<std::string,DtVirtualBaseClass*> ;
171 
174 
178 
181 
187  };
188 }
DtCoordinateSystem * myCoordinateSystem
The local coordinate system the simulation will use.
Definition: DtBaseConnection.h:180
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Implementation independent random number generator.
Definition: DtRandomNumberGenerator.h:20
virtual const std::string & tag()
Get the tag identifying which type of connection this is.
Definition: DtBaseConnection.h:99
Contains utility macros and methods for templates.
vrvSignalsLib::signal< void()> signal_coordinateSystemChanged
Emitted when the coordinate system changed.
Definition: DtBaseConnection.h:139
DtRandomNumberGenerator myRandomNumberGenerator
The random number generator for the local simulation.
Definition: DtBaseConnection.h:152
DtAgentManagerInterface & mySceneInterface
Thread specific Variables. This variables are used by the second thread. They should not be used in a...
Definition: DtBaseConnection.h:157
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
DtVisualizerCreationSettings * myVisualizerCreationSettings
Creation settings for visualizers. Element managers use these settings to determine which visualizers...
Definition: DtBaseConnection.h:186
DtElementChanges is used to communicate changes in element data between drivers and the main applicat...
Definition: DtElementChanges.h:25
The blinking object manager. Causes managed objects to blink by toggling their visibility at a specif...
Definition: DtBlinkingObjectManager.h:25
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
The temporary agent manager. This manager is used to add timed DtAgents to the scene, such as detonation effects.
Definition: DtTemporaryAgentManager.h:32
Contains makVrv::DtVirtualBaseClass class.
boost::signalslib::signal< void()> signal_postConnectionTick
Signal sent after the tick has been completed.
Definition: DtBaseConnection.h:145
Contains makVrv::DtRandomNumberGenerator class.
DtElementChanges * myWorkingElementChanges
Internal working element changes.
Definition: DtBaseConnection.h:160
std::unordered_map< std::string, DtVirtualBaseClass * > InstanceMap
Definition: DtBaseConnection.h:170
bool myDestroyingInstanceFlag
Flag to store if the connection is destroying the instances in it&#39;s DTOR.
Definition: DtBaseConnection.h:177
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool destroyingInstances() const
Check to see if the simulation is destroying instances. This function is used in the destructor of ob...
Definition: DtBaseConnection.h:128
InstanceMap myInstances
Stores a pointer to simulation specific instances.
Definition: DtBaseConnection.h:173
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtUnicode myEmptyString
Definition: DtBaseConnection.h:168
DtBlinkingObjectManager * myBlinkManager
Manager for blinking objects.
Definition: DtBaseConnection.h:166
Contains makVrv::DtUniqueID type.
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
DtSharedSettingsManager & mySettingsManagerCache
Hold on to the shared simulation manager.
Definition: DtBaseConnection.h:149
boost::signalslib::signal< void()> signal_preConnectionTick
Signal sent before the tick starts.
Definition: DtBaseConnection.h:142
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:20
Container class which indicates which visualizers need to be created for each modelSet, based on whether that visualizer visualizes something that is currently enabled and if the visualizer is create-on-demand vs. create-always. Visualizers with visual types not in the map are treated as needing to be created (hence the map only suppresses creation of unneeded visualizers). Once these settings have been initialized connestToSettingsSignals() should be called so that these settings are kept up to date with the settings in the GUI.
Definition: DtVisualizerCreationSettings.h:33
Contains makVrv::DtVisualizerCreationSettingsManager class.
DtTemporaryAgentManager * myTemporaryEffects
Manager for temporary global effects.
Definition: DtBaseConnection.h:163
Contains DLL export macros.

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)