VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtConnection.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 
12 #include <vrvVrl/vrvVrl.h>
13 #include <vrvCore/DtDriver.h>
18 
19 #include <vrvUtil/signalslib.h>
20 
21 #include <vlutil/vlTimeStampType.h>
22 #include <map>
23 #include <string>
24 
25 class DtEntityType;
26 
27 namespace makVrv
28 {
29  class DtAgentManagerInterface;
30  class DtCoordinateSystem;
31  class DtDisplayUnitsConverter;
32  class DtElementChanges;
33  class DtEntityAppearanceMapper;
34  class DtEntityAppearanceMapperFactory;
35  class DtEntityAppearanceMapperFactoryCreator;
36  class DtMouseState;
37  class DtSharedSettingsManager;
38 
42  {
43  public:
44 
46  DtConnection(DtAgentManagerInterface& aSceneInterface,
47  const DtCoordinateSystem& coordSystem,
48  const DtEntityAppearanceMapperFactoryCreator& appFactoryCreator,
49  DtSharedSettingsManager& settingsManager);
50 
52  virtual ~DtConnection();
53 
55  DtConnection() = delete;
56 
58  DtConnection( const DtConnection& ) = delete;
59 
61  DtConnection& operator=( const DtConnection& ) = delete;
62 
63  public:
64 
66  const DtEntityAppearanceMapper* findAppearanceMapper(const DtEntityType& type);
67 
68  const DtEntityAppearanceMapperFactory& appearanceMapperFactory() const;
69 
70  virtual void coordinateSystemChanged(const std::string& coordinateName,
71  const std::string& coordinateOrigin );
72 
74  const DtCoordinateSystem& coordinateSystem() const;
75 
77  const DtDisplayUnitsConverter& displayUnitConverter() const;
78 
83  virtual bool connect() = 0;
84 
87  virtual bool connected() const;
88 
93  virtual bool disconnect() = 0;
94 
96  virtual void tick(double dt) = 0;
97 
99  virtual double simTime() const = 0;
100 
102  virtual void setSimTime( double simTime) = 0;
103 
105  virtual double clockTime() const = 0;
106 
108  virtual DtTimeStampType timeStampType() const = 0;
109 
111  virtual void pauseConnection();
112 
114  virtual void resumeConnection();
115 
117  virtual bool connectionIsPaused() const;
118 
120  virtual void setViewControlChanged( bool enabled ) = 0;
121 
124  virtual void setConnectionFrameTime( double frameTime ) = 0;
125 
128  virtual double connectionFrameTime() const = 0;
129 
136  virtual void setUseTopoForFlatEarthVectorConversion( bool enabled ) = 0;
137 
139  virtual void observerUpdated(const std::string& observerName,
140  double x, double y, double z,
141  double psi, double theta, double phi) = 0;
142 
145  virtual void observerUpdated(const std::string& observerName,
146  double x, double y, double z,
147  double psi, double theta, double phi,
148  double dx, double dy, double dz,
149  double dpsi, double dtheta, double dphi) = 0;
150 
152  virtual void stopPublishingObserver(const std::string& observerName) = 0;
153 
155  virtual void startPublishingObserver(const std::string& observerName) = 0;
156 
158  boost::signalslib::signal<void (DtMouseState&, const DtUniqueID&,
159  const std::string& displayEngineName, const std::string& windowName,
160  const std::string& channelName)>
162  boost::signalslib::signal<void (DtMouseState&, const DtUniqueID&,
163  const std::string& displayEngineName, const std::string& windowName,
164  const std::string& channelName)>
166  boost::signalslib::signal<void (DtMouseState&, const DtUniqueID&,
167  const std::string& displayEngineName, const std::string& windowName,
168  const std::string& channelName)>
170 
172  boost::signalslib::signal<void (DtMouseState&, const DtUniqueID&,
173  const std::string& displayEngineName, const std::string& windowName,
174  const std::string& channelName)>
176  boost::signalslib::signal<void (DtMouseState&, const DtUniqueID&,
177  const std::string& displayEngineName, const std::string& windowName,
178  const std::string& channelName)>
180  boost::signalslib::signal<void (DtMouseState&, const DtUniqueID&,
181  const std::string& displayEngineName, const std::string& windowName,
182  const std::string& channelName)>
184 
186  boost::signalslib::signal<void (DtViewStateProcessor::ObserverAction&)>
188 
190  boost::signalslib::signal<void ()> signal_coordinateSystemChanged;
191 
193  boost::signalslib::signal<void ()> signal_connected;
194 
196  boost::signalslib::signal<void ()> signal_toBeDisconnected;
197 
198 
201  void entityIndicatorMouseDown(DtMouseState& mouseState,
202  const DtUniqueID& id, const std::string& displayEngineName,
203  const std::string& windowName, const std::string& channelName);
204  void entityIndicatorMouseUp(DtMouseState& mouseState,
205  const DtUniqueID& id, const std::string& displayEngineName,
206  const std::string& windowName, const std::string& channelName);
207  void entityIndicatorMouseDblClick(DtMouseState& mouseState,
208  const DtUniqueID& id, const std::string& displayEngineName,
209  const std::string& windowName, const std::string& channelName);
210 
213  void tacticalGraphicIndicatorMouseDown(DtMouseState& mouseState,
214  const DtUniqueID& id, const std::string& displayEngineName,
215  const std::string& windowName, const std::string& channelName);
216  void tacticalGraphicIndicatorMouseUp(DtMouseState& mouseState,
217  const DtUniqueID& id, const std::string& displayEngineName,
218  const std::string& windowName, const std::string& channelName);
219  void tacticalGraphicIndicatorMouseDblClick(DtMouseState& mouseState,
220  const DtUniqueID& id, const std::string& displayEngineName,
221  const std::string& windowName, const std::string& channelName);
222 
224  void setAppNumber(int appNumber);
225 
227  void setSiteId(int siteId);
228 
236  virtual bool isDisconnecting() const;
237 
238 
239  protected:
240 
241 
242  //The local coordinate system the simulation will use.
244 
246 
249 
251  int mySiteId;
254  };
255 }
Creator for DtEntityAppearanceMapperFactory class.
Definition: DtEntityAppearanceMapperFactory.h:82
The base class for protocol specific VRLink Simulations.
Definition: DtConnection.h:41
#define DT_DLL_VRVVRL
Definition: vrvVrl.h:19
Factory for creating appearance mappers for entity types.
Definition: DtEntityAppearanceMapperFactory.h:26
DtCoordinateSystem * myCoordinateSystem
Definition: DtConnection.h:243
boost::signalslib::signal< void(DtViewStateProcessor::ObserverAction &)> signal_viewChanged
Emitted when a view control change is received.
Definition: DtConnection.h:187
boost::signalslib::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_tacticalGraphicIndicatorMouseDown
Emitted when an tactical graphic indicator is clicked.
Definition: DtConnection.h:175
Decoder for converting a particular entity type&#39;s appearance bits into generic enumerated values...
Definition: DtEntityAppearanceMapper.h:25
boost::signalslib::signal< void()> signal_coordinateSystemChanged
Emitted when the coordinate system changed.
Definition: DtConnection.h:190
Contains makVrv:DtSelectionManager class.
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
boost::signalslib::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_tacticalGraphicIndicatorMouseDblClick
Definition: DtConnection.h:183
boost::signalslib::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_entityIndicatorMouseDown
Emitted when an entity indicator is clicked.
Definition: DtConnection.h:161
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
Contains makVrv::DtRandomNumberGenerator class.
boost::signalslib::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_tacticalGraphicIndicatorMouseUp
Definition: DtConnection.h:179
boost::signalslib::signal< void()> signal_toBeDisconnected
Emitted when the connection will be disconnecting.
Definition: DtConnection.h:196
This class encapsulates the state associated with a mouse button event.
Definition: DtMouseState.h:20
Utility class for doing global unit conversion.
Definition: DtDisplayUnitsSettingsManager.h:59
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signalslib::signal< void()> signal_connected
Emitted when the connection finished connecting.
Definition: DtConnection.h:193
Contains makVrv:DtDriver class.
int mySiteId
Definition: DtConnection.h:251
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:41
Contains makVrv:DtBaseConnection class.
bool myIsPausedFlag
Definition: DtConnection.h:252
boost::signalslib::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_entityIndicatorMouseDblClick
Definition: DtConnection.h:169
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
bool myIsDisconnecting
Definition: DtConnection.h:253
boost::signalslib::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_entityIndicatorMouseUp
Definition: DtConnection.h:165
Contains DLL export macros.
int myAppNumber
Definition: DtConnection.h:250
DtDisplayUnitsConverter * myCoordinateConverter
Definition: DtConnection.h:245
DtEntityAppearanceMapperFactory * myMapperFactory
Factory responsible for creating Appearance Mappers.
Definition: DtConnection.h:248

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)