10 #include <matrix/vlMath.h>
11 #include <tbb/spin_mutex.h>
12 #include <tbb/tbb_thread.h>
13 #include <tbb/atomic.h>
14 #include <tbb/compat/condition_variable>
67 virtual void startMonitoring(
const DtUUID&,
bool radarCoverage2D =
true,
bool radarCoverage3D =
true,
int responseId = 0);
70 virtual void stopMonitoring(
const DtUUID&);
73 virtual void terrainClosed();
78 const DtVector& start,
const DtVector& end,
bool altitudeMSL,
double highResRadius);
81 static void simObjectAboutToBeRemoved(
const DtVrfObject * msg,
void * usr);
82 virtual void processSimObjectAboutToBeRemoved(
const DtVrfObject* msg);
87 static void radarCoverageInformationCallback(
DtSimMessage* msg,
void* usr);
95 virtual void processRadarCoverage();
97 virtual void sendInitialRadarCoverage(RadarCoverage& coverage,
int coverageType,
int responseId = 0)
const;
99 virtual void sendRadarCoverageResults(
const RadarCoverageData&,
const DtSensorFanWalker*,
int coverageType,
int responseId = 0)
const;
103 virtual void cancelRadarCoverage(RadarCoverage& radar,
int coverageType,
bool reset =
true);
104 virtual void startRadarCoverageCalculations(RadarCoverage& radar,
int coverageType);
107 static void settingConsumerCallback(
const DtSettingsObject* settingsObject,
void* usr);
108 virtual void processSettingsConsumer(
const DtSettingsObject* settingsObject);
110 virtual PendingRadarCoverageRequest initializeRadarCoverageCalculation2D(
const RadarCoverageRequest&);
111 virtual PendingRadarCoverageRequest initializeRadarCoverageCalculation3D(
const RadarCoverageRequest&);
112 virtual void removeRadarCoverageCalculation(
const DtUUID& uuid,
const DtString& radarName,
int coverageType);
113 virtual bool processPendingIntersection(PendingRadarCoverageRequest& pending);
114 virtual void clearAllCalculations();
115 virtual void initializeAzimuthAndElevation(
const RadarCoverageData& coverage,
116 double& azimuthStart,
double& azimuthEnd,
double& elevationStart,
double& elevationEnd)
const;
118 virtual bool coverageCancelled(
const DtUUID&,
int flag);
133 : azimuthSweepMinimum(0)
134 , azimuthSweepMaximum(M_2PI)
135 , elevationSweepMinimum(0.)
136 , elevationSweepMaximum(M_PI_2)
137 , azimuthSampleRate(M_DEG2RAD)
138 , elevationSampleRate(M_DEG2RAD)
140 , highResRadius(1000)
142 , uuid(
DtUUID::nullUUID())
147 : azimuthSweepMinimum(orig.azimuthSweepMinimum)
148 , azimuthSweepMaximum(orig.azimuthSweepMaximum)
149 , elevationSweepMinimum(orig.elevationSweepMinimum)
150 , elevationSweepMaximum(orig.elevationSweepMaximum)
151 , radarName(orig.radarName)
152 , azimuthSampleRate(orig.azimuthSampleRate)
153 , elevationSampleRate(orig.elevationSampleRate)
154 , postSpacing(orig.postSpacing)
155 , highResRadius(orig.highResRadius)
156 , radarRange(orig.radarRange)
159 , currentPosition(orig.currentPosition)
160 , currentOrientation(orig.currentOrientation)
184 , movementDelta(1000.)
185 , orientationDelta(M_DEG2RAD)
186 , radarCoverageWaitTime(2.0)
194 , movementDelta(orig.movementDelta)
195 , orientationDelta(orig.orientationDelta)
196 , radarCoverage2D(orig.radarCoverage2D)
197 , radarCoverage3D(orig.radarCoverage3D)
198 , radarCoverageWaitTime(orig.radarCoverageWaitTime)
199 , requestTime(orig.requestTime)
215 , removeOnNextRefresh(false)
219 : referenceCount(orig.referenceCount)
220 , vrfObject(orig.vrfObject)
221 , removeOnNextRefresh(orig.removeOnNextRefresh)
222 , radars(orig.radars)
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
double radarCoverageWaitTime
Definition: radarCoverageMonitor.h:205
tbb::mutex ConditionMutex
Definition: radarCoverageMonitor.h:239
double elevationSweepMinimum
Definition: radarCoverageMonitor.h:167
Condition myRadarCoverageCondition
Definition: radarCoverageMonitor.h:241
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
bool myAltitudeMSL
Definition: radarCoverageMonitor.h:267
int coverageType
Definition: radarCoverageMonitor.h:275
bool myReset3D
Definition: radarCoverageMonitor.h:271
bool cancel
Definition: radarCoverageMonitor.h:261
DtTaitBryan currentOrientation
Definition: radarCoverageMonitor.h:174
double radarRange
Definition: radarCoverageMonitor.h:164
std::map< DtUUID, PendingRadarCoverageRequests > PendingRadarCoverageRequestsMap
Definition: radarCoverageMonitor.h:281
DtRadarCoverageAltitudeSettings myRadarCoverageAltitudeSettings
Definition: radarCoverageMonitor.h:268
double azimuthSweepMaximum
Definition: radarCoverageMonitor.h:166
DtVector currentPosition
Definition: radarCoverageMonitor.h:173
RadarCoverageRequests myRadarCoverageRequests
Definition: radarCoverageMonitor.h:265
boost::shared_ptr< DtSensorFanWalker > radarCoverage2D
Definition: radarCoverageMonitor.h:207
tbb::interface5::condition_variable Condition
Definition: radarCoverageMonitor.h:238
Definition: radarCoverageMonitor.h:130
Definition: radarCoverageMonitor.h:32
DtObjectSensorDescriptor; descriptor for the DtObjectSensor component.
Definition: objectSensorDescriptor.h:27
DtSimInterfaceMessage is used to send a message to the front end or the back end. ...
Definition: simInterfaceMessage.h:32
int referenceCount
Definition: radarCoverageMonitor.h:226
DtString radarName
Definition: radarCoverageMonitor.h:175
RadarCoverageData radarData
Definition: radarCoverageMonitor.h:276
std::vector< RadarCoverageResult > myRadarCoverageResults
Definition: radarCoverageMonitor.h:255
double highResRadius
Definition: radarCoverageMonitor.h:172
std::vector< RadarCoverage > radars
Definition: radarCoverageMonitor.h:230
Monitoring(const Monitoring &orig)
Definition: radarCoverageMonitor.h:218
MonitoringMap myMonitoringMap
Definition: radarCoverageMonitor.h:234
Definition: settingsObject.h:27
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
Definition: radarCoverageAltitudeSettings.h:35
tbb::spin_mutex myRadarCoverageAdditionMutex
Definition: radarCoverageMonitor.h:246
double postSpacing
Definition: radarCoverageMonitor.h:171
RadarCoverageData(const RadarCoverageData &orig)
Definition: radarCoverageMonitor.h:146
double azimuthSweepMinimum
Definition: radarCoverageMonitor.h:165
DtSensorFanWalker * walker
Definition: radarCoverageMonitor.h:277
tbb::interface5::unique_lock< ConditionMutex > ConditionLock
Definition: radarCoverageMonitor.h:240
RadarCoverage(const RadarCoverage &orig)
Definition: radarCoverageMonitor.h:191
int coverageType
Definition: radarCoverageMonitor.h:251
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
void setSimManager(DtSimManager *simManager)
If the default constructor was used, you can supply a sim manager later; however, if you do...
Definition: radarCoverageMonitor.h:58
int coverageType
Definition: radarCoverageMonitor.h:260
RadarCoverageData()
Definition: radarCoverageMonitor.h:132
DtSimManager * mySimManager
Definition: radarCoverageMonitor.h:128
File: simMsg.h.
Definition: simMessage.h:35
double elevationSweepMaximum
Definition: radarCoverageMonitor.h:168
DtUUID uuid
Definition: radarCoverageMonitor.h:176
std::map< DtString, std::vector< PendingRadarCoverageRequest > > PendingRadarCoverageRequests
Definition: radarCoverageMonitor.h:280
double elevationSampleRate
Definition: radarCoverageMonitor.h:170
Definition: radarCoverageMonitor.h:180
tbb::atomic< bool > myShutdownRadarCoverageThreadFlag
Definition: radarCoverageMonitor.h:243
Definition: radarCoverageMonitor.h:248
DtSensorFanWalker * walker
Definition: radarCoverageMonitor.h:252
RadarCoverageData radar
Definition: radarCoverageMonitor.h:259
RadarCoverageData radarData
Definition: radarCoverageMonitor.h:250
double orientationDelta
Definition: radarCoverageMonitor.h:204
RadarCoverage()
Definition: radarCoverageMonitor.h:182
double azimuthSampleRate
Definition: radarCoverageMonitor.h:169
std::vector< RadarCoverageRequest > RadarCoverageRequests
Definition: radarCoverageMonitor.h:264
PendingRadarCoverageRequestsMap myPendingRadarCoverageRequests
Definition: radarCoverageMonitor.h:282
ConditionMutex myRadarCoverageConditionMutex
Definition: radarCoverageMonitor.h:242
std::auto_ptr< tbb::tbb_thread > myRadarCoverageThread
Member variables used to interact with the radar coverage thread.
Definition: radarCoverageMonitor.h:237
boost::shared_ptr< DtSensorFanWalker > radarCoverage3D
Definition: radarCoverageMonitor.h:208
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: radarCoverageMonitor.h:273
Definition: sensorFanWalker.h:29
Definition: radarCoverageMonitor.h:257
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
bool myReset2D
Definition: radarCoverageMonitor.h:270
double movementDelta
Definition: radarCoverageMonitor.h:203
Definition: radarCoverageMonitor.h:211
Monitoring()
Definition: radarCoverageMonitor.h:213
voidpf uLong offset
Definition: ioapi.h:42
tbb::atomic< bool > myClearPendingIntersections
Definition: radarCoverageMonitor.h:244
DtVector offset
Definition: radarCoverageMonitor.h:177
double requestTime
Definition: radarCoverageMonitor.h:206
bool removeOnNextRefresh
Definition: radarCoverageMonitor.h:228
DtSimManager * simManager() const
Definition: radarCoverageMonitor.h:59
std::map< DtUUID, Monitoring > MonitoringMap
Definition: radarCoverageMonitor.h:233