17 #include <vlutil/vlThread.h>
19 #include <vlutil/vlRunnable.h>
21 #include <boost/function.hpp>
22 #include <boost/signal.hpp>
29 class DtAsynchronousEventQueue;
30 class DtAsynchronousAgentManager;
32 class DtEntityTypeMapper;
34 class DtSelectionManager;
47 const std::string& uniqueName,
const std::string& className);
53 virtual const std::string& className()
const;
56 virtual bool observersPublished()
const;
59 virtual void setObserversPublished(
bool isPublished);
63 virtual bool overrideGlobalViewControl()
const;
67 virtual void setOverrideGlobalViewControl(
bool enabled);
72 virtual bool viewControlEnabled()
const;
76 virtual void setLocalViewControlEnabled(
bool enabled);
80 virtual bool localViewControlEnabled()
const;
84 virtual void setConnectionFrameTime(
double frameTime );
88 virtual double connectionFrameTime()
const;
96 void setUseTopoForFlatEarthVectorConversion(
bool flag );
97 bool useTopoForFlatEarthVectorConversion()
const;
101 virtual void queueDriverFunction(
const boost::function<
void ()>&
function);
104 virtual void queueConnectionFunction(
const boost::function<
void ()>&
function);
109 return myUseThreadFlag;
130 virtual bool onStart();
134 virtual bool onStop();
140 void startPublishingObservers();
143 void stopPublishingObservers();
147 virtual bool onTick();
158 void setConnectionState(
bool state );
161 virtual void slot_displayEngineAdded(
const DtDeRecord& igRecord );
164 virtual void slot_globalViewControlEnabledSet(
bool );
169 virtual void connectToDynamicSignals();
173 virtual void disconnectFromDynamicSignals();
175 virtual void slot_onViewChanged(
178 virtual void slot_onCurrentSelectionChanged(
182 virtual void slot_onVertexSelected(
const DtUniqueID& selected,
185 virtual void slot_onVertexDeselected(
const DtUniqueID& deselected,
188 virtual void slot_onEntityInfoToggled(
192 virtual void slot_entityTrackHistoryColorOverride(
197 virtual void slot_onEntityIndicatorMouseDown(
DtMouseState& mouseState,
198 const DtUniqueID&
id,
const std::string& displayEngineName,
199 const std::string& windowName,
const std::string& channelName);
201 virtual void slot_onEntityIndicatorMouseUp(
DtMouseState& mouseState,
202 const DtUniqueID&
id,
const std::string& displayEngineName,
203 const std::string& windowName,
const std::string& channelName);
205 virtual void slot_onEntityIndicatorMouseDblClick(
DtMouseState& mouseState,
206 const DtUniqueID&
id,
const std::string& displayEngineName,
207 const std::string& windowName,
const std::string& channelName);
211 virtual void slot_onTacticalGraphicIndicatorMouseDown(
213 const std::string& windowName,
214 const std::string& channelName);
216 virtual void slot_onTacticalGraphicIndicatorMouseUp(
218 const std::string& windowName,
219 const std::string& channelName);
221 virtual void slot_onTacticalGraphicIndicatorMouseDblClick(
223 const std::string& windowName,
224 const std::string& channelName);
227 virtual void slot_onCoordinateSystemChanged(
228 const std::string& coordinateSystem,
229 const std::string& coordinateParameters );
232 virtual void toggleEntitySelected(
const DtUniqueID&
id);
234 virtual void performObserverAction(
239 virtual void slot_onObserverDestroyed(
DtObserver* observer);
241 virtual void slot_onObserverCreated(
DtObserver* observer);
244 virtual void startPublishingObserver(
DtObserver* observer );
247 virtual void stopPublishingObserver(
DtObserver* observer );
250 virtual void updateObservers();
254 virtual void slot_pause();
258 virtual void slot_resume();
261 const DtUniqueID&
id,
const std::string& displayEngineName,
262 const std::string& windowName,
const std::string& channelName);
265 const DtUniqueID&
id,
const std::string& displayEngineName,
266 const std::string& windowName,
const std::string& channelName);
269 const DtUniqueID&
id,
const std::string& displayEngineName,
270 const std::string& windowName,
const std::string& channelName);
278 virtual void runFunctionQueue(FunctionCallQueue& queue);
The base class for protocol specific VRLink Simulations.
Definition: DtConnection.h:41
The base class for VR-Link based drivers.
Definition: DtVrlinkDriver.h:40
DtThreadStartSP myStart
Definition: DtVrlinkDriver.h:289
boost::function< void(DtObserver &)> ObserverAction
Definition: DtViewStateProcessor.h:32
#define DT_DLL_VRVVRL
Definition: vrvVrl.h:19
boost::signal< void(DtConnection *)> signal_simulationAboutToBeDestroyed
This signal is emitted when the simulation is about to be destroyed.
Definition: DtVrlinkDriver.h:121
DtThread * myThread
Definition: DtVrlinkDriver.h:290
DtSelectionManager & mySelectionManager
Definition: DtVrlinkDriver.h:313
bool useThreadFlag() const
Returns value of thread flag.
Definition: DtVrlinkDriver.h:107
An asynchronous interface to the scene manager.
Definition: DtAsynchronousAgentManager.h:27
DtAsynchronousEventQueue * myAsynchronousEventQueue
Definition: DtVrlinkDriver.h:298
The master window of the scene.
Definition: DtSelectionManager.h:28
A Record of an IG instance.
Definition: DtDeRecord.h:24
std::string myClassName
Definition: DtVrlinkDriver.h:283
Contains makVrv:DtSelectionManager class.
DtConnection * connection()
Definition: DtVrlinkDriver.h:112
DtAsynchronousAgentManager * myAsynchronousInterface
Definition: DtVrlinkDriver.h:294
Contains makVrv::DtLockedBufferedQueue class.
DtLockedBufferedQueue< boost::function< void()> > FunctionCallQueue
Definition: DtVrlinkDriver.h:272
bool myOverrideGlobalViewControlEnabled
Definition: DtVrlinkDriver.h:309
A locked buffered queue which allows multiple writers and a single reader.
Definition: DtLockedBufferedQueue.h:27
A facade for a DtObserverObject.
Definition: DtObserver.h:37
The DtDriver is an abstract class.
Definition: DtDriver.h:34
DtSignalConnectionManager myDynamicSignals
Definition: DtVrlinkDriver.h:301
The asynchronous event queue.
Definition: DtAsynchronousEventQueue.h:27
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
This class encapsulates the state associated with a mouse button event.
Definition: DtMouseState.h:23
std::vector< boost::function< void()> > FunctionCallList
Definition: DtVrlinkDriver.h:273
Definition: DtVrlinkDriver.h:275
boost::signal< void(DtConnection *)> signal_simulationCreated
This signal is emitted when the simulation is created.
Definition: DtVrlinkDriver.h:118
The DtAgentManager manages the distributed scene object framework.
Definition: DtAgentManager.h:38
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Contains makVrv:DtDriver class.
double myLastObserverUpdateTime
Definition: DtVrlinkDriver.h:304
bool myConnectionState
Definition: DtVrlinkDriver.h:299
FunctionType
Definition: DtVrlinkDriver.h:275
DtConnection * myConnection
Definition: DtVrlinkDriver.h:297
double myObserverUpdateTimeInterval
Definition: DtVrlinkDriver.h:303
FunctionCallQueue myConnectionThreadFunctions
Definition: DtVrlinkDriver.h:292
bool myUseTopoForFlatEarthVectorConversion
Definition: DtVrlinkDriver.h:310
FunctionCallQueue myDriverThreadFunctions
Definition: DtVrlinkDriver.h:293
double myLastSimTime
Definition: DtVrlinkDriver.h:305
bool myGlobalViewControlEnabled
Definition: DtVrlinkDriver.h:308
double myConnectionFrameTime
Definition: DtVrlinkDriver.h:311
bool myObserversPublished
Definition: DtVrlinkDriver.h:306
bool myLocalViewControlEnabled
Definition: DtVrlinkDriver.h:307
Contains DLL export macros.
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Template for Color values in [0,1] range.
Definition: DtColorValue.h:18
bool myUseThreadFlag
Definition: DtVrlinkDriver.h:288