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) 2023 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 
141  protected:
142 
145 
148 
153 
156 
159 
162 
164 
165  using InstanceMap = std::unordered_map<std::string,DtVirtualBaseClass*> ;
166 
169 
173 
176 
182  };
183 }
DtCoordinateSystem * myCoordinateSystem
The local coordinate system the simulation will use.
Definition: DtBaseConnection.h:175
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:147
DtAgentManagerInterface & mySceneInterface
Thread specific Variables. This variables are used by the second thread. They should not be used in a...
Definition: DtBaseConnection.h:152
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:181
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.
Contains makVrv::DtRandomNumberGenerator class.
DtElementChanges * myWorkingElementChanges
Internal working element changes.
Definition: DtBaseConnection.h:155
std::unordered_map< std::string, DtVirtualBaseClass * > InstanceMap
Definition: DtBaseConnection.h:165
bool myDestroyingInstanceFlag
Flag to store if the connection is destroying the instances in it&#39;s DTOR.
Definition: DtBaseConnection.h:172
#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:168
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
DtUnicode myEmptyString
Definition: DtBaseConnection.h:163
DtBlinkingObjectManager * myBlinkManager
Manager for blinking objects.
Definition: DtBaseConnection.h:161
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:144
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:158
Contains DLL export macros.

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)