VR-Forces 5.0.2 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) 2022 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 
39  {
40 
41  public:
44  DtAgentManagerInterface& aSceneInterface,
45  const DtCoordinateSystem& coordSystem);
46 
49  DtAgentManagerInterface& aSceneInterface);
50 
53  virtual ~DtBaseConnection();
54 
57  virtual void clearInstances();
58 
60  virtual void coordinateSystemChanged(const std::string& coordinateName, const std::string& coordinateOrigin);
61 
63  const DtCoordinateSystem& coordinateSystem() const;
64 
66  DtSharedSettingsManager& settingsManager();
67 
69  virtual DtAgentManagerInterface& sceneInterface();
70 
72  const DtSharedSettingsManager& settingsManager() const;
73 
75  DtVisualizerCreationSettings& visualizerCreationSettings();
76 
78  void reportElementCreated(DtElementID id, DtElementID parentId, unsigned int type);
79 
80  //The attribute passed in should not be used again.
81  void reportElementAttribute(DtElementID id, DtElementAttribute* attribute);
82 
84  void reportElementDestroyed(DtElementID id);
85 
87  const DtElementChanges& currentElementChanges() const;
88 
90  DtElementChanges* takeElementChanges();
91 
93  DtTemporaryAgentManager& temporaryEffects();
94 
96  DtBlinkingObjectManager& blinkManager();
97 
99  DtRandomNumberGenerator& randomNumberGenerator();
100 
102  virtual const std::string& tag()
103  {
104  const static std::string tagStr = "";
105  return tagStr;
106  }
107 
109  const DtUnicode& emptyString() const;
110 
116  virtual DtVirtualBaseClass* findInstance(const std::string& instanceName);
117 
131  inline bool destroyingInstances() const
132  {
133  return myDestroyingInstanceFlag;
134  }
135 
138  virtual void registerInstance(const std::string& instanceName,
139  DtVirtualBaseClass* instance);
140 
142  boost::signalslib::signal<void()> signal_coordinateSystemChanged;
143 
144  protected:
145 
148 
151 
156 
159 
162 
165 
167 
168  typedef boost::unordered_map<std::string,DtVirtualBaseClass*> InstanceMap;
169 
172 
176 
179 
185  };
186 }
DtCoordinateSystem * myCoordinateSystem
The local coordinate system the simulation will use.
Definition: DtBaseConnection.h:178
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:102
Contains utility macros and methods for templates.
DtRandomNumberGenerator myRandomNumberGenerator
The random number generator for the local simulation.
Definition: DtBaseConnection.h:150
DtAgentManagerInterface & mySceneInterface
Thread specific Variables. This variables are used by the second thread. They should not be used in a...
Definition: DtBaseConnection.h:155
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:184
boost::unordered_map< std::string, DtVirtualBaseClass * > InstanceMap
Definition: DtBaseConnection.h:168
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:38
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.
Contains makVrv::DtRandomNumberGenerator class.
DtElementChanges * myWorkingElementChanges
Internal working element changes.
Definition: DtBaseConnection.h:158
bool myDestroyingInstanceFlag
Flag to store if the connection is destroying the instances in it&#39;s DTOR.
Definition: DtBaseConnection.h:175
#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:131
InstanceMap myInstances
Stores a pointer to simulation specific instances.
Definition: DtBaseConnection.h:171
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtUnicode myEmptyString
Definition: DtBaseConnection.h:166
DtBlinkingObjectManager * myBlinkManager
Manager for blinking objects.
Definition: DtBaseConnection.h:164
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:147
boost::signalslib::signal< void()> signal_coordinateSystemChanged
Emitted when the coordinate system changed.
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:32
Contains makVrv::DtVisualizerCreationSettingsManager class.
DtTemporaryAgentManager * myTemporaryEffects
Manager for temporary global effects.
Definition: DtBaseConnection.h:161
Contains DLL export macros.

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)