VR-Vantage 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtConnection.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2018 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 <boost/signals.hpp>
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  const DtEntityAppearanceMapper* findAppearanceMapper(const DtEntityType& type);
56 
57  virtual void coordinateSystemChanged(const std::string& coordinateName,
58  const std::string& coordinateOrigin );
59 
61  const DtCoordinateSystem& coordinateSystem() const;
62 
64  const DtDisplayUnitsConverter& displayUnitConverter() const;
65 
70  virtual bool connect() = 0;
71 
74  virtual bool connected() const;
75 
80  virtual bool disconnect() = 0;
81 
83  virtual void tick(double dt) = 0;
84 
86  virtual double simTime() const = 0;
87 
89  virtual void setSimTime( double simTime) = 0;
90 
92  virtual double clockTime() const = 0;
93 
95  virtual DtTimeStampType timeStampType() const = 0;
96 
98  virtual void pauseConnection();
99 
101  virtual void resumeConnection();
102 
104  virtual bool connectionIsPaused() const;
105 
107  virtual void setViewControlChanged( bool enabled ) = 0;
108 
111  virtual void setConnectionFrameTime( double frameTime ) = 0;
112 
115  virtual double connectionFrameTime() const = 0;
116 
123  virtual void setUseTopoForFlatEarthVectorConversion( bool enabled ) = 0;
124 
126  virtual void observerUpdated(const std::string& observerName,
127  double x, double y, double z,
128  double psi, double theta, double phi) = 0;
129 
132  virtual void observerUpdated(const std::string& observerName,
133  double x, double y, double z,
134  double psi, double theta, double phi,
135  double dx, double dy, double dz,
136  double dpsi, double dtheta, double dphi) = 0;
137 
139  virtual void stopPublishingObserver(const std::string& observerName) = 0;
140 
142  virtual void startPublishingObserver(const std::string& observerName) = 0;
143 
145  boost::signal<void (DtMouseState&, const DtUniqueID&,
146  const std::string& displayEngineName, const std::string& windowName,
147  const std::string& channelName)>
149  boost::signal<void (DtMouseState&, const DtUniqueID&,
150  const std::string& displayEngineName, const std::string& windowName,
151  const std::string& channelName)>
153  boost::signal<void (DtMouseState&, const DtUniqueID&,
154  const std::string& displayEngineName, const std::string& windowName,
155  const std::string& channelName)>
157 
159  boost::signal<void (DtMouseState&, const DtUniqueID&,
160  const std::string& displayEngineName, const std::string& windowName,
161  const std::string& channelName)>
163  boost::signal<void (DtMouseState&, const DtUniqueID&,
164  const std::string& displayEngineName, const std::string& windowName,
165  const std::string& channelName)>
167  boost::signal<void (DtMouseState&, const DtUniqueID&,
168  const std::string& displayEngineName, const std::string& windowName,
169  const std::string& channelName)>
171 
173  boost::signal<void (DtViewStateProcessor::ObserverAction&)>
175 
177  boost::signal<void ()> signal_coordinateSystemChanged;
178 
180  boost::signal<void ()> signal_connected;
181 
183  boost::signal<void ()> signal_toBeDisconnected;
184 
185 
188  void entityIndicatorMouseDown(DtMouseState& mouseState,
189  const DtUniqueID& id, const std::string& displayEngineName,
190  const std::string& windowName, const std::string& channelName);
191  void entityIndicatorMouseUp(DtMouseState& mouseState,
192  const DtUniqueID& id, const std::string& displayEngineName,
193  const std::string& windowName, const std::string& channelName);
194  void entityIndicatorMouseDblClick(DtMouseState& mouseState,
195  const DtUniqueID& id, const std::string& displayEngineName,
196  const std::string& windowName, const std::string& channelName);
197 
200  void tacticalGraphicIndicatorMouseDown(DtMouseState& mouseState,
201  const DtUniqueID& id, const std::string& displayEngineName,
202  const std::string& windowName, const std::string& channelName);
203  void tacticalGraphicIndicatorMouseUp(DtMouseState& mouseState,
204  const DtUniqueID& id, const std::string& displayEngineName,
205  const std::string& windowName, const std::string& channelName);
206  void tacticalGraphicIndicatorMouseDblClick(DtMouseState& mouseState,
207  const DtUniqueID& id, const std::string& displayEngineName,
208  const std::string& windowName, const std::string& channelName);
209 
211  void setAppNumber(int appNumber);
212 
214  void setSiteId(int siteId);
215 
223  virtual bool isDisconnecting() const;
224 
225 
226  protected:
227 
228  typedef boost::unordered_map<std::string,DtEntityAppearanceMapper*> AppearanceMapperMap;
229 
230  //The local coordinate system the simulation will use.
232 
234 
237 
240 
242  int mySiteId;
245  };
246 }
Creator for DtEntityAppearanceMapperFactory class.
Definition: DtEntityAppearanceMapperFactory.h:69
The base class for protocol specific VRLink Simulations.
Definition: DtConnection.h:41
boost::signal< void()> signal_connected
Emitted when the connection finished connecting.
Definition: DtConnection.h:180
#define DT_DLL_VRVVRL
Definition: vrvVrl.h:19
Factory for creating appearance mappers for entity types.
Definition: DtEntityAppearanceMapperFactory.h:24
DtCoordinateSystem * myCoordinateSystem
Definition: DtConnection.h:231
boost::signal< void(DtViewStateProcessor::ObserverAction &)> signal_viewChanged
Emitted when a view control change is received.
Definition: DtConnection.h:174
Decoder for converting a particular entity type&#39;s appearance bits into generic enumerated values...
Definition: DtEntityAppearanceMapper.h:25
Contains makVrv:DtSelectionManager class.
boost::signal< void()> signal_coordinateSystemChanged
Emitted when the coordinate system changed.
Definition: DtConnection.h:177
boost::signal< void()> signal_toBeDisconnected
Emitted when the connection will be disconnecting.
Definition: DtConnection.h:183
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
AppearanceMapperMap myAppearanceMapperMap
Map of appearance mappers shared by entities of the same type.
Definition: DtConnection.h:236
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:37
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t x *y t *t t x *y t *t *t x y *z t t *t t x *y *z t *t *t t x y z t t t t x *y z t *t t t x * y(z *w))
boost::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:148
Contains makVrv::DtRandomNumberGenerator class.
This class encapsulates the state associated with a mouse button event.
Definition: DtMouseState.h:23
boost::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_tacticalGraphicIndicatorMouseDblClick
Definition: DtConnection.h:170
Utility class for doing global unit conversion.
Definition: DtDisplayUnitsSettingsManager.h:59
x y * z
Definition: exprtk.hpp:9133
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
boost::unordered_map< std::string, DtEntityAppearanceMapper * > AppearanceMapperMap
Definition: DtConnection.h:228
Contains makVrv:DtDriver class.
int mySiteId
Definition: DtConnection.h:242
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
Contains makVrv:DtBaseConnection class.
bool myIsPausedFlag
Definition: DtConnection.h:243
x y t t *t x y t t t x y t t t x *y t *t t x *y t *t t x y t t t x y t t t x(y+z)
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:36
boost::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:162
bool myIsDisconnecting
Definition: DtConnection.h:244
Contains DLL export macros.
int myAppNumber
Definition: DtConnection.h:241
boost::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_entityIndicatorMouseUp
Definition: DtConnection.h:152
DtDisplayUnitsConverter * myCoordinateConverter
Definition: DtConnection.h:233
DtEntityAppearanceMapperFactory * myMapperFactory
Factory responsible for creating Appearance Mappers.
Definition: DtConnection.h:239
boost::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_entityIndicatorMouseDblClick
Definition: DtConnection.h:156
boost::signal< void(DtMouseState &, const DtUniqueID &, const std::string &displayEngineName, const std::string &windowName, const std::string &channelName)> signal_tacticalGraphicIndicatorMouseUp
Definition: DtConnection.h:166


Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)