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;
100 virtual void queueDriverFunction(
const boost::function<
void ()>&
function);
103 virtual void queueConnectionFunction(
const boost::function<
void ()>&
function);
108 return myUseThreadFlag;
129 virtual bool onStart();
133 virtual bool onStop();
139 void startPublishingObservers();
142 void stopPublishingObservers();
146 virtual bool onTick();
157 void setConnectionState(
bool state );
160 virtual void slot_displayEngineAdded(
const DtDeRecord& igRecord );
163 virtual void slot_globalViewControlEnabledSet(
bool );
168 virtual void connectToDynamicSignals();
172 virtual void disconnectFromDynamicSignals();
174 virtual void slot_onViewChanged(
177 virtual void slot_onCurrentSelectionChanged(
181 virtual void slot_onElementHasHoveredWidget(
185 virtual void slot_onVertexSelected(
const DtUniqueID& selected,
188 virtual void slot_onVertexDeselected(
const DtUniqueID& deselected,
200 virtual void slot_infoLabelsArePinned(
204 virtual void slot_entityTrackHistoryColorOverride(
208 virtual void slot_onCoordinateSystemChanged(
209 const std::string& coordinateSystem,
210 const std::string& coordinateParameters );
213 virtual void toggleEntitySelected(
const DtUniqueID&
id);
215 virtual void performObserverAction(
220 virtual void slot_onObserverDestroyed(
DtObserver* observer);
222 virtual void slot_onObserverCreated(
DtObserver* observer);
225 virtual void startPublishingObserver(
DtObserver* observer );
228 virtual void stopPublishingObserver(
DtObserver* observer );
231 virtual void updateObservers();
235 virtual void slot_pause();
239 virtual void slot_resume();
247 virtual void runFunctionQueue(FunctionCallQueue& queue);
The base class for protocol specific VRLink Simulations.
Definition: DtConnection.h:43
The base class for VR-Link based drivers.
Definition: DtVrlinkDriver.h:40
DtThreadStartSP myStart
Definition: DtVrlinkDriver.h:258
boost::function< void(DtObserver &)> ObserverAction
Definition: DtViewStateProcessor.h:29
#define DT_DLL_VRVVRL
Definition: vrvVrl.h:19
DtThread * myThread
Definition: DtVrlinkDriver.h:259
DtSelectionManager & mySelectionManager
Definition: DtVrlinkDriver.h:282
bool useThreadFlag() const
Returns value of thread flag.
Definition: DtVrlinkDriver.h:106
An asynchronous interface to the scene manager.
Definition: DtAsynchronousAgentManager.h:24
DtAsynchronousEventQueue * myAsynchronousEventQueue
Definition: DtVrlinkDriver.h:267
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:252
Contains makVrv:DtSelectionManager class.
DtConnection * connection()
Definition: DtVrlinkDriver.h:111
DtAsynchronousAgentManager * myAsynchronousInterface
Definition: DtVrlinkDriver.h:263
Contains makVrv::DtLockedBufferedQueue class.
DtLockedBufferedQueue< boost::function< void()> > FunctionCallQueue
Definition: DtVrlinkDriver.h:241
bool myOverrideGlobalViewControlEnabled
Definition: DtVrlinkDriver.h:278
A locked buffered queue which allows multiple writers and a single reader. Internally the queue is st...
Definition: DtLockedBufferedQueue.h:24
A facade for a DtObserverObject.
Definition: DtObserver.h:37
The DtDriver is an abstract class. Developers derive from this to create logic that "directs" things ...
Definition: DtDriver.h:31
DtSignalConnectionManager myDynamicSignals
Definition: DtVrlinkDriver.h:270
The asynchronous event queue. To create an asynchronous event queue the the makVrv::DtMainEventQueue ...
Definition: DtAsynchronousEventQueue.h:24
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::vector< boost::function< void()> > FunctionCallList
Definition: DtVrlinkDriver.h:242
Definition: DtVrlinkDriver.h:244
The DtAgentManager manages the distributed scene object framework. This includes the objects and upda...
Definition: DtAgentManager.h:38
Contains makVrv:DtDriver class.
double myLastObserverUpdateTime
Definition: DtVrlinkDriver.h:273
bool myConnectionState
Definition: DtVrlinkDriver.h:268
FunctionType
Definition: DtVrlinkDriver.h:244
DtConnection * myConnection
Definition: DtVrlinkDriver.h:266
double myObserverUpdateTimeInterval
Definition: DtVrlinkDriver.h:272
FunctionCallQueue myConnectionThreadFunctions
Definition: DtVrlinkDriver.h:261
bool myUseTopoForFlatEarthVectorConversion
Definition: DtVrlinkDriver.h:279
FunctionCallQueue myDriverThreadFunctions
Definition: DtVrlinkDriver.h:262
double myLastSimTime
Definition: DtVrlinkDriver.h:274
bool myGlobalViewControlEnabled
Definition: DtVrlinkDriver.h:277
boost::signalslib::signal< void(DtConnection *)> signal_connectionAboutToBeDestroyed
This signal is emitted when the connection is about to be destroyed.
Definition: DtVrlinkDriver.h:120
double myConnectionFrameTime
Definition: DtVrlinkDriver.h:280
boost::signalslib::signal< void(DtConnection *)> signal_connectionCreated
This signal is emitted when the connection is created.
Definition: DtVrlinkDriver.h:117
bool myObserversPublished
Definition: DtVrlinkDriver.h:275
bool myLocalViewControlEnabled
Definition: DtVrlinkDriver.h:276
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:257