VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLegionConnection.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 <vrvLegion/vrvLegion.h>
13 
14 #include <vrvCore/DtDriver.h>
19 #include "legionNet/boundarySpatialSpherical.h"
20 #include "legionDataStore/configuration.h"
21 
23 
24 #include <legionDataStore/dataTypes.h>
25 #include <legionDataStore/vector.h>
26 
27 #include <matrix/vlVector.h>
28 
29 #include <vlutil/vlTimeStampType.h>
30 #include <map>
31 #include <string>
32 
33 #include <boost/signals2.hpp>
34 
35 class DtEntityType;
36 
37 namespace Legion
38 {
39  class Connection;
40  class ViewManager;
41  class WriteEntityRepository;
42  class BoundarySpatialSpherical;
43  class SimulationDatabase;
44  class Configuration;
45 }
46 
47 namespace STE
48 {
49  class EntityView;
50 }
51 
52 namespace MAK
53 {
54  class ServerStatResult;
55  class ClientStatResult;
56 }
57 
58 namespace makVrv
59 {
60  class DtLegionDriver;
61  class DtEntityProcessor;
62  class DtFireEventProcessor;
63  class DtDetonationEventProcessor;
64 
68  {
69  public:
70 
73  const DtCoordinateSystem& coordSystem,
74  const DtEntityAppearanceMapperFactoryCreator& appFactoryCreator,
75  DtSharedSettingsManager& settingsManager, DtLegionDriver& driver);
76 
78  virtual ~DtLegionConnection();
79 
80 
82  virtual void setConnectionConfiguration(const Legion::Configuration& config);
83 
84 
89  virtual bool connect();
90 
93  virtual bool connected() const;
94 
99  virtual bool disconnect();
100 
102  virtual void tick(double dt);
103 
105  virtual double simTime() const;
106 
108  virtual void setSimTime( double simTime);
109 
111  virtual double clockTime() const;
112 
114  virtual DtTimeStampType timeStampType() const;
115 
116 
118  virtual void setViewControlChanged( bool enabled );
119 
122  virtual void setConnectionFrameTime( double frameTime );
123 
126  virtual double connectionFrameTime() const;
127 
134  virtual void setUseTopoForFlatEarthVectorConversion( bool enabled );
135 
137  virtual void observerUpdated(const std::string& observerName,
138  double x, double y, double z,
139  double psi, double theta, double phi);
140 
143  virtual void observerUpdated(const std::string& observerName,
144  double x, double y, double z,
145  double psi, double theta, double phi,
146  double dx, double dy, double dz,
147  double dpsi, double dtheta, double dphi);
148 
150  virtual void stopPublishingObserver(const std::string& observerName);
151 
153  virtual void startPublishingObserver(const std::string& observerName);
154 
155 
158  void setSupportsDelayedVisualizerCreation(bool);
159  bool supportsDelayedVisualizerCreation() const;
160 
165  boost::signals2::signal <void()> signal_exerciseConnectionCreated;
166 
168  boost::signals2::signal <void()> signal_preTick;
169 
171  boost::signals2::signal <void()> signal_postTick;
172 
174  boost::signals2::signal <void()> signal_postBeginFrame;
175 
177  boost::signals2::signal <void()> signal_preEndFrame;
178 
180  boost::signals2::signal <void()> signal_databaseCreated;
181 
183  virtual void queueDriverFunction(boost::function<void()> func);
184 
188  virtual void queueConnectionFunction(boost::function<void()> func);
189 
190  Legion::SimulationDatabase* database();
191  Legion::Connection* connection();
192  Legion::ViewManager* viewManager();
193 
196  virtual DtLegionDriver& driver();
197  virtual const DtLegionDriver& driver() const;
198 
199 
200  virtual void setInterestSize(int size);
201  virtual int interestSize();
202 
203  virtual void setObserverForward(DtVector& localPos, DtVector& localFwd);
204  virtual Legion::Vector3d observerForward();
205  virtual Legion::Vector3d observerLocation();
206 
207  virtual void resetConnection();
208 
209  virtual void setExternalCommunicationControl(bool);
210 
211  protected:
213  void addObserverPublisher(const std::string& observerName);
214  void updateInterest();
215 #if 0
216  void handleStats(const MAK::ServerStatResult& servers, const std::vector<MAK::ClientStatResult>& clients);
217 #endif
218  protected:
219 
222 
223  //Publishers for observers
229 
232 
236 
237  Legion::Configuration* myConnectionConfiguration;
238  Legion::SimulationDatabase* myDatabase;
239  Legion::Connection* myConnection;
240  Legion::ViewManager* myViewManager;
241 
242  double mySimTime;
244 
245  Legion::Vector3f myObserverForward;
246  Legion::Vector3d myObserverLocation;
247  Legion::Vector3d myLastObserverLocation;
248  Legion::BoundarySpatialSpherical* myBoundary;
249 
251  };
252 }
DtDetonationEventProcessor * myDetonationProcessor
Definition: DtLegionConnection.h:235
Creator for DtEntityAppearanceMapperFactory class.
Definition: DtEntityAppearanceMapperFactory.h:83
boost::signals2::signal< void()> signal_exerciseConnectionCreated
Signal sent when the exercise connection is created, but before some initialization (like creating re...
Definition: DtLegionConnection.h:165
Legion::SimulationDatabase * myDatabase
Definition: DtLegionConnection.h:238
double myConnectionFrameTime
Definition: DtLegionConnection.h:228
boost::signals2::signal< void()> signal_preEndFrame
Sent right before end frame.
Definition: DtLegionConnection.h:177
bool myViewControlsEnabled
typedef boost::unordered_map&lt;std::string,DtEntityAppearanceMapper*&gt; AppearanceMapperMap; typedef boos...
Definition: DtLegionConnection.h:225
float myInterestSize
Definition: DtLegionConnection.h:243
DtEntityProcessor * myEntityProcessor
Definition: DtLegionConnection.h:233
bool mySupportsDelayedVisualizerCreation
Definition: DtLegionConnection.h:230
Legion::Vector3d myLastObserverLocation
Definition: DtLegionConnection.h:247
boost::signals2::signal< void()> signal_postTick
Signal sent after the tick has been completed.
Definition: DtLegionConnection.h:171
DtSignalConnectionManager myConnections
Definition: DtLegionConnection.h:227
boost::signals2::signal< void()> signal_preTick
Signal sent before the tick starts.
Definition: DtLegionConnection.h:168
voidpf void uLong size
Definition: ioapi.h:39
Contains makVrv:DtSelectionManager class.
Legion::BoundarySpatialSpherical * myBoundary
Definition: DtLegionConnection.h:248
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
The base class for protocol specific VRLink Simulations.
Definition: DtLegionConnection.h:67
DtLegionDriver & myDriver
Definition: DtLegionConnection.h:231
boost::signals2::signal< void()> signal_databaseCreated
Sent right after the database is created.
Definition: DtLegionConnection.h:180
Legion::Vector3d myObserverLocation
Definition: DtLegionConnection.h:246
#define VRV_LEGION_DLL
Definition: export.h:24
Contains makVrv::DtRandomNumberGenerator class.
Definition: DtDetonationEventProcessor.h:76
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::signals2::signal< void()> signal_postBeginFrame
Sent right after begin frame.
Definition: DtLegionConnection.h:174
Contains makVrv:DtDriver class.
Legion::Connection * myConnection
Definition: DtLegionConnection.h:239
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
Contains makVrv:DtBaseConnection class.
Definition: DtFireEventProcessor.h:52
Legion::Vector3f myObserverForward
Definition: DtLegionConnection.h:245
Definition: DtEntityProcessor.h:48
bool myExternalCommunicationControl
Definition: DtLegionConnection.h:250
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
double mySimTime
Definition: DtLegionConnection.h:242
Legion::Configuration * myConnectionConfiguration
Definition: DtLegionConnection.h:237
Definition: DtLegionDriver.h:32
Legion::ViewManager * myViewManager
Definition: DtLegionConnection.h:240
bool myUseTopoForFlatEarthVectorConversion
Definition: DtLegionConnection.h:226
DtFireEventProcessor * myFireProcessor
Definition: DtLegionConnection.h:234

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)