17 #include <vlutil/vlThread.h>
19 #include <vlutil/vlRunnable.h>
21 #include <boost/function.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_onElementHasHoveredWidget(
186 virtual void slot_onVertexSelected(
const DtUniqueID& selected,
189 virtual void slot_onVertexDeselected(
const DtUniqueID& deselected,
192 virtual void slot_onEntityInfoToggled(
196 virtual void slot_entityTrackHistoryColorOverride(
201 virtual void slot_onEntityIndicatorMouseDown(
DtMouseState& mouseState,
202 const DtUniqueID&
id,
const std::string& displayEngineName,
203 const std::string& windowName,
const std::string& channelName);
205 virtual void slot_onEntityIndicatorMouseUp(
DtMouseState& mouseState,
206 const DtUniqueID&
id,
const std::string& displayEngineName,
207 const std::string& windowName,
const std::string& channelName);
209 virtual void slot_onEntityIndicatorMouseDblClick(
DtMouseState& mouseState,
210 const DtUniqueID&
id,
const std::string& displayEngineName,
211 const std::string& windowName,
const std::string& channelName);
215 virtual void slot_onTacticalGraphicIndicatorMouseDown(
217 const std::string& windowName,
218 const std::string& channelName);
220 virtual void slot_onTacticalGraphicIndicatorMouseUp(
222 const std::string& windowName,
223 const std::string& channelName);
225 virtual void slot_onTacticalGraphicIndicatorMouseDblClick(
227 const std::string& windowName,
228 const std::string& channelName);
231 virtual void slot_onCoordinateSystemChanged(
232 const std::string& coordinateSystem,
233 const std::string& coordinateParameters );
236 virtual void toggleEntitySelected(
const DtUniqueID&
id);
238 virtual void performObserverAction(
243 virtual void slot_onObserverDestroyed(
DtObserver* observer);
245 virtual void slot_onObserverCreated(
DtObserver* observer);
248 virtual void startPublishingObserver(
DtObserver* observer );
251 virtual void stopPublishingObserver(
DtObserver* observer );
254 virtual void updateObservers();
258 virtual void slot_pause();
262 virtual void slot_resume();
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);
273 const DtUniqueID&
id,
const std::string& displayEngineName,
274 const std::string& windowName,
const std::string& channelName);
282 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:293
boost::function< void(DtObserver &)> ObserverAction
Definition: DtViewStateProcessor.h:29
#define DT_DLL_VRVVRL
Definition: vrvVrl.h:19
DtThread * myThread
Definition: DtVrlinkDriver.h:294
DtSelectionManager & mySelectionManager
Definition: DtVrlinkDriver.h:317
bool useThreadFlag() const
Returns value of thread flag.
Definition: DtVrlinkDriver.h:107
An asynchronous interface to the scene manager.
Definition: DtAsynchronousAgentManager.h:24
DtAsynchronousEventQueue * myAsynchronousEventQueue
Definition: DtVrlinkDriver.h:302
boost::signalslib::signal< void(DtConnection *)> signal_simulationAboutToBeDestroyed
This signal is emitted when the simulation is about to be destroyed.
Definition: DtVrlinkDriver.h:121
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:287
Contains makVrv:DtSelectionManager class.
DtConnection * connection()
Definition: DtVrlinkDriver.h:112
DtAsynchronousAgentManager * myAsynchronousInterface
Definition: DtVrlinkDriver.h:298
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
boost::signalslib::signal< void(DtConnection *)> signal_simulationCreated
This signal is emitted when the simulation is created.
Definition: DtVrlinkDriver.h:118
Contains makVrv::DtLockedBufferedQueue class.
DtLockedBufferedQueue< boost::function< void()> > FunctionCallQueue
Definition: DtVrlinkDriver.h:276
bool myOverrideGlobalViewControlEnabled
Definition: DtVrlinkDriver.h:313
A locked buffered queue which allows multiple writers and a single reader.
Definition: DtLockedBufferedQueue.h:24
A facade for a DtObserverObject.
Definition: DtObserver.h:37
The DtDriver is an abstract class.
Definition: DtDriver.h:31
DtSignalConnectionManager myDynamicSignals
Definition: DtVrlinkDriver.h:305
The asynchronous event queue.
Definition: DtAsynchronousEventQueue.h:24
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
This class encapsulates the state associated with a mouse button event.
Definition: DtMouseState.h:20
std::vector< boost::function< void()> > FunctionCallList
Definition: DtVrlinkDriver.h:277
Definition: DtVrlinkDriver.h:279
The DtAgentManager manages the distributed scene object framework.
Definition: DtAgentManager.h:38
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Contains makVrv:DtDriver class.
double myLastObserverUpdateTime
Definition: DtVrlinkDriver.h:308
bool myConnectionState
Definition: DtVrlinkDriver.h:303
FunctionType
Definition: DtVrlinkDriver.h:279
DtConnection * myConnection
Definition: DtVrlinkDriver.h:301
double myObserverUpdateTimeInterval
Definition: DtVrlinkDriver.h:307
FunctionCallQueue myConnectionThreadFunctions
Definition: DtVrlinkDriver.h:296
bool myUseTopoForFlatEarthVectorConversion
Definition: DtVrlinkDriver.h:314
FunctionCallQueue myDriverThreadFunctions
Definition: DtVrlinkDriver.h:297
double myLastSimTime
Definition: DtVrlinkDriver.h:309
bool myGlobalViewControlEnabled
Definition: DtVrlinkDriver.h:312
double myConnectionFrameTime
Definition: DtVrlinkDriver.h:315
bool myObserversPublished
Definition: DtVrlinkDriver.h:310
bool myLocalViewControlEnabled
Definition: DtVrlinkDriver.h:311
Contains DLL export macros.
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Template for Color values in [0,1] range.
Definition: DtColorValue.h:20
bool myUseThreadFlag
Definition: DtVrlinkDriver.h:292