12 #include <vrvUtil/signalslib.h>
14 #include <vrvUtil/DtSignalConnectionManager.h>
15 #include <vlutil/vlPerformanceStats.h>
17 #include <vrvUtil/DtVirtualBaseClass.h>
19 #include <boost/signal.hpp>
21 #include <matrix/vlVector.h>
27 class DtSimObjectEntry;
49 inline double sum()
const {
return mySum; };
53 typedef std::pair<makVrv::DtModel*, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedEntityState>*>
TrackingData;
54 typedef std::map<makVrv::DtElementID, TrackingData>
TrackingMap;
70 virtual void setLinePoints(
const std::vector<DtVector>&);
74 virtual void setShowObjectsWithinRange(
double);
77 virtual void findAllInRange();
81 virtual bool canTrack(makVrv::DtModel* model,
double& range,
86 virtual bool withinRange(
const DtVector&,
double& range)
const;
89 virtual void suspend();
92 virtual void resume();
95 virtual bool isSuspended()
const;
98 virtual DtVector geocentricPosition(makVrv::DtModel*)
const;
101 virtual void modelAboutToBeDestroyed(makVrv::DtModel*);
107 boost::signal<void (DtVector geocentricPosition, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedEntityState>*)> signal_trackingEntity;
110 boost::signal<void (DtVector geocentricPosition, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedEntityState>*)> signal_trackingEntityUpdated;
122 virtual void checkTracked();
125 virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& e);
126 virtual void removeTrackedItem(makVrv::DtElementID);
131 virtual void slot_simStateAdded(makVrv::DtSimObjectEntry& e);
137 virtual void updateRateForRange(makVrv::DtModel*,
double range);
140 virtual bool checkAndRemove(makVrv::DtElementID
id,
TrackingMap& map)
const;
146 virtual makVrv::DtModel* findModelFor(makVrv::DtElementID)
const;
149 virtual void updateData(
TrackData& data,
bool tracked =
false);
152 virtual void checkWaiting();
155 virtual makVrv::DtElementID simIdFromModel(makVrv::DtModel*)
const;