VR-Forces 5.0.1 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) 2021 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 <boost/unordered_map.hpp>
21 
22 #include <string>
23 #include <map>
24 
25 namespace makVrv
26 {
27  class DtSharedSettingsManager;
28  class DtAgentManagerInterface;
29  class DtElementChanges;
30  class DtElementAttribute;
31  class DtBlinkingObjectManager;
32  class DtTemporaryAgentManager;
33  class DtMouseState;
34  class DtCoordinateSystem;
35  class DtDisplayUnitsConverter;
36 
40  {
41 
42  public:
45  DtAgentManagerInterface& aSceneInterface,
46  const DtCoordinateSystem& coordSystem);
47 
50  DtAgentManagerInterface& aSceneInterface);
51 
54  virtual ~DtBaseConnection();
55 
58  virtual void clearInstances();
59 
61  virtual void coordinateSystemChanged(const std::string& coordinateName, const std::string& coordinateOrigin);
62 
64  const DtCoordinateSystem& coordinateSystem() const;
65 
67  const DtDisplayUnitsConverter& displayUnitConverter() const;
68 
70  DtSharedSettingsManager& settingsManager();
71 
73  virtual DtAgentManagerInterface& sceneInterface();
74 
76  const DtSharedSettingsManager& settingsManager() const;
77 
79  DtVisualizerCreationSettings& visualizerCreationSettings();
80 
82  void reportElementCreated(DtElementID id, DtElementID parentId, unsigned int type);
83 
84  //The attribute passed in should not be used again.
85  void reportElementAttribute(DtElementID id, DtElementAttribute* attribute);
86 
88  void reportElementDestroyed(DtElementID id);
89 
91  const DtElementChanges& currentElementChanges() const;
92 
94  DtElementChanges* takeElementChanges();
95 
97  DtTemporaryAgentManager& temporaryEffects();
98 
100  DtBlinkingObjectManager& blinkManager();
101 
103  DtRandomNumberGenerator& randomNumberGenerator();
104 
106  virtual const std::string& tag()
107  {
108  const static std::string tagStr = "";
109  return tagStr;
110  }
111 
113  const DtUnicode& emptyString() const;
114 
120  virtual DtVirtualBaseClass* findInstance(const std::string& instanceName);
121 
135  inline bool destroyingInstances() const
136  {
137  return myDestroyingInstanceFlag;
138  }
139 
142  virtual void registerInstance(const std::string& instanceName,
143  DtVirtualBaseClass* instance);
144 
146  boost::signalslib::signal<void()> signal_coordinateSystemChanged;
147 
148  protected:
149 
152 
155 
160 
163 
166 
169 
171 
172  typedef boost::unordered_map<std::string,DtVirtualBaseClass*> InstanceMap;
173 
176 
180 
183 
185 
191  };
192 }
DtCoordinateSystem * myCoordinateSystem
The local coordinate system the simulation will use.
Definition: DtBaseConnection.h:182
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:106
Contains utility macros and methods for templates.
DtRandomNumberGenerator myRandomNumberGenerator
The random number generator for the local simulation.
Definition: DtBaseConnection.h:154
DtAgentManagerInterface & mySceneInterface
Thread specific Variables. This variables are used by the second thread. They should not be used in a...
Definition: DtBaseConnection.h:159
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
DtVisualizerCreationSettings * myVisualizerCreationSettings
Creation settings for visualizers. Element managers use these settings to determine which visualizers...
Definition: DtBaseConnection.h:190
boost::unordered_map< std::string, DtVirtualBaseClass * > InstanceMap
Definition: DtBaseConnection.h:172
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:39
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.
DtDisplayUnitsConverter * myCoordinateConverter
Definition: DtBaseConnection.h:184
Contains makVrv::DtRandomNumberGenerator class.
DtElementChanges * myWorkingElementChanges
Internal working element changes.
Definition: DtBaseConnection.h:162
bool myDestroyingInstanceFlag
Flag to store if the connection is destroying the instances in it&#39;s DTOR.
Definition: DtBaseConnection.h:179
#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:135
InstanceMap myInstances
Stores a pointer to simulation specific instances.
Definition: DtBaseConnection.h:175
Utility class for doing global unit conversion. All conversions functions use the following naming co...
Definition: DtDisplayUnitsSettingsManager.h:60
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
DtUnicode myEmptyString
Definition: DtBaseConnection.h:170
DtBlinkingObjectManager * myBlinkManager
Manager for blinking objects.
Definition: DtBaseConnection.h:168
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:151
boost::signalslib::signal< void()> signal_coordinateSystemChanged
Emitted when the coordinate system changed.
Definition: DtBaseConnection.h:146
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:32
Contains makVrv::DtVisualizerCreationSettingsManager class.
DtTemporaryAgentManager * myTemporaryEffects
Manager for temporary global effects.
Definition: DtBaseConnection.h:165
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)