VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions
DtRadarCoverageMonitor Class Reference

Classes

struct  Monitoring
 
struct  PendingRadarCoverageRequest
 
struct  RadarCoverage
 
struct  RadarCoverageData
 
struct  RadarCoverageRequest
 
struct  RadarCoverageResult
 

Public Member Functions

 DtRadarCoverageMonitor (DtSimulationServices *simManager)
 
virtual ~DtRadarCoverageMonitor ()
 
virtual bool init ()
 
virtual void tick ()
 
virtual void startMonitoring (const DtUUID &, bool radarCoverage2D=true, bool radarCoverage3D=true, int responseId=0)
 
virtual void stopMonitoring (const DtUUID &)
 
virtual void terrainClosed ()
 

Protected Types

typedef std::map< DtUUID,
Monitoring
MonitoringMap
 
typedef
tbb::interface5::condition_variable 
Condition
 
typedef tbb::mutex ConditionMutex
 
typedef
tbb::interface5::unique_lock
< ConditionMutex
ConditionLock
 
typedef std::vector
< RadarCoverageRequest
RadarCoverageRequests
 
typedef std::map< DtString,
std::vector
< PendingRadarCoverageRequest > > 
PendingRadarCoverageRequests
 
typedef std::map< DtUUID,
PendingRadarCoverageRequests
PendingRadarCoverageRequestsMap
 

Protected Member Functions

virtual
DtSensorFanWalker::IntersectionInformation 
intersectionTest (const DtVector &start, const DtVector &end, bool altitudeMSL, double highResRadius)
 
virtual void processSimObjectDeleted (const DtSimObject *msg)
 
virtual void getRadarGeometry (DtObjectSensorDescriptor *desc, RadarCoverage &radar) const
 
virtual void processRadarCoverage ()
 
virtual void sendInitialRadarCoverage (RadarCoverage &coverage, int coverageType, int responseId=0) const
 
virtual void sendRadarCoverageResults (const RadarCoverageData &, const DtSensorFanWalker *, int coverageType, int responseId=0) const
 
virtual DtVector offsetPoint (const DtVector &point, const DtVector &offset) const
 
virtual bool processRadarCoverage (RadarCoverage &radar, DtSimObjectReference)
 
virtual void cancelRadarCoverage (RadarCoverage &radar, int coverageType, bool reset=true)
 
virtual void startRadarCoverageCalculations (RadarCoverage &radar, int coverageType)
 
virtual bool radarCoverageNeedsUpdate (RadarCoverage &radar, DtSimObjectReference) const
 
virtual void processSettingsConsumer (const DtSettingsObject *settingsObject)
 
virtual PendingRadarCoverageRequest initializeRadarCoverageCalculation2D (const RadarCoverageRequest &)
 
virtual PendingRadarCoverageRequest initializeRadarCoverageCalculation3D (const RadarCoverageRequest &)
 
virtual void removeRadarCoverageCalculation (const DtUUID &uuid, const DtString &radarName, int coverageType)
 
virtual bool processPendingIntersection (PendingRadarCoverageRequest &pending)
 
virtual void clearAllCalculations ()
 
virtual void initializeAzimuthAndElevation (const RadarCoverageData &coverage, double &azimuthStart, double &azimuthEnd, double &elevationStart, double &elevationEnd) const
 
virtual bool coverageCancelled (const DtUUID &, int flag)
 

Static Protected Member Functions

static void settingConsumerCallback (const DtSettingsObject *settingsObject, void *usr)
 

Protected Attributes

DtSimulationServicesmySimulationServices
 
MonitoringMap myMonitoringMap
 
std::auto_ptr< tbb::tbb_thread > myRadarCoverageThread
 
Condition myRadarCoverageCondition
 
ConditionMutex myRadarCoverageConditionMutex
 
tbb::atomic< boolmyShutdownRadarCoverageThreadFlag
 
tbb::atomic< boolmyClearPendingIntersections
 
tbb::spin_mutex myRadarCoverageAdditionMutex
 
std::vector< RadarCoverageResultmyRadarCoverageResults
 
RadarCoverageRequests myRadarCoverageRequests
 
bool myAltitudeMSL
 
DtRadarCoverageAltitudeSettings myRadarCoverageAltitudeSettings
 
bool myReset2D
 
bool myReset3D
 
PendingRadarCoverageRequestsMap myPendingRadarCoverageRequests
 
tbb::spin_mutex myMonitoringMapMutex
 

Private Member Functions

 DtRadarCoverageMonitor ()
 
 DtRadarCoverageMonitor (const DtRadarCoverageMonitor &orig)
 
const DtRadarCoverageMonitoroperator= (const DtRadarCoverageMonitor &orig)
 
virtual void processRadarCoverageInformation (DtSimInterfaceMessage *msg)
 
static void radarCoverageInformationCallback (DtSimMessage *msg, void *usr)
 

Member Typedef Documentation

typedef tbb::interface5::condition_variable DtRadarCoverageMonitor::Condition
protected
typedef tbb::mutex DtRadarCoverageMonitor::ConditionMutex
protected
typedef tbb::interface5::unique_lock<ConditionMutex> DtRadarCoverageMonitor::ConditionLock
protected

Constructor & Destructor Documentation

DtRadarCoverageMonitor::DtRadarCoverageMonitor ( )
private
DtRadarCoverageMonitor::DtRadarCoverageMonitor ( DtSimulationServices simManager)

standard constructor

virtual DtRadarCoverageMonitor::~DtRadarCoverageMonitor ( )
virtual

destructor

DtRadarCoverageMonitor::DtRadarCoverageMonitor ( const DtRadarCoverageMonitor orig)
private

copy constructor; report timer is currently not copied.

Member Function Documentation

virtual bool DtRadarCoverageMonitor::init ( )
virtual

Calls register callbacks.

virtual void DtRadarCoverageMonitor::tick ( )
virtual

Called to see if anything has been changed such that a radar coverage area that has been generated needs to be scheduled to be regenerated.

virtual void DtRadarCoverageMonitor::startMonitoring ( const DtUUID ,
bool  radarCoverage2D = true,
bool  radarCoverage3D = true,
int  responseId = 0 
)
virtual

Starts the process of monitoring the given object. This will look up and cache all sensor information (as well as current object position and orientation) and send messages to the front-ends that the monitoring has begun.

virtual void DtRadarCoverageMonitor::stopMonitoring ( const DtUUID )
virtual

Stops monitoring the particular object and will let front-ends know to remove any radar coverages objects associated with it.

virtual void DtRadarCoverageMonitor::terrainClosed ( )
virtual

Called when the current terrain is closed – clear out pending requests.

virtual DtSensorFanWalker::IntersectionInformation DtRadarCoverageMonitor::intersectionTest ( const DtVector start,
const DtVector end,
bool  altitudeMSL,
double  highResRadius 
)
protectedvirtual

Called as part of radar coverage intersection test.

virtual void DtRadarCoverageMonitor::processSimObjectDeleted ( const DtSimObject msg)
protectedvirtual

Remove entity from radar coverage list.

static void DtRadarCoverageMonitor::radarCoverageInformationCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callbacks to either stop, start or make a reference to an existing radar coverage operation.

virtual void DtRadarCoverageMonitor::processRadarCoverageInformation ( DtSimInterfaceMessage msg)
protectedvirtual

Callbacks to either stop, start or make a reference to an existing radar coverage operation.

virtual void DtRadarCoverageMonitor::getRadarGeometry ( DtObjectSensorDescriptor desc,
RadarCoverage radar 
) const
protectedvirtual

Gets the radar information from the radar geometry.

virtual void DtRadarCoverageMonitor::processRadarCoverage ( )
protectedvirtual

Thread that is run to process current radar coverage requests.

virtual void DtRadarCoverageMonitor::sendInitialRadarCoverage ( RadarCoverage coverage,
int  coverageType,
int  responseId = 0 
) const
protectedvirtual
virtual void DtRadarCoverageMonitor::sendRadarCoverageResults ( const RadarCoverageData ,
const DtSensorFanWalker ,
int  coverageType,
int  responseId = 0 
) const
protectedvirtual
virtual DtVector DtRadarCoverageMonitor::offsetPoint ( const DtVector point,
const DtVector offset 
) const
protectedvirtual
virtual bool DtRadarCoverageMonitor::processRadarCoverage ( RadarCoverage radar,
DtSimObjectReference   
)
protectedvirtual
virtual void DtRadarCoverageMonitor::cancelRadarCoverage ( RadarCoverage radar,
int  coverageType,
bool  reset = true 
)
protectedvirtual
virtual void DtRadarCoverageMonitor::startRadarCoverageCalculations ( RadarCoverage radar,
int  coverageType 
)
protectedvirtual
virtual bool DtRadarCoverageMonitor::radarCoverageNeedsUpdate ( RadarCoverage radar,
DtSimObjectReference   
) const
protectedvirtual
static void DtRadarCoverageMonitor::settingConsumerCallback ( const DtSettingsObject settingsObject,
void *  usr 
)
staticprotected
virtual void DtRadarCoverageMonitor::processSettingsConsumer ( const DtSettingsObject settingsObject)
protectedvirtual
virtual PendingRadarCoverageRequest DtRadarCoverageMonitor::initializeRadarCoverageCalculation2D ( const RadarCoverageRequest )
protectedvirtual
virtual PendingRadarCoverageRequest DtRadarCoverageMonitor::initializeRadarCoverageCalculation3D ( const RadarCoverageRequest )
protectedvirtual
virtual void DtRadarCoverageMonitor::removeRadarCoverageCalculation ( const DtUUID uuid,
const DtString radarName,
int  coverageType 
)
protectedvirtual
virtual bool DtRadarCoverageMonitor::processPendingIntersection ( PendingRadarCoverageRequest pending)
protectedvirtual
virtual void DtRadarCoverageMonitor::clearAllCalculations ( )
protectedvirtual
virtual void DtRadarCoverageMonitor::initializeAzimuthAndElevation ( const RadarCoverageData coverage,
double azimuthStart,
double azimuthEnd,
double elevationStart,
double elevationEnd 
) const
protectedvirtual
virtual bool DtRadarCoverageMonitor::coverageCancelled ( const DtUUID ,
int  flag 
)
protectedvirtual
const DtRadarCoverageMonitor& DtRadarCoverageMonitor::operator= ( const DtRadarCoverageMonitor orig)
private

assignment operator; see copy constructor above.

Member Data Documentation

DtSimulationServices* DtRadarCoverageMonitor::mySimulationServices
protected
MonitoringMap DtRadarCoverageMonitor::myMonitoringMap
protected
std::auto_ptr<tbb::tbb_thread> DtRadarCoverageMonitor::myRadarCoverageThread
protected

Member variables used to interact with the radar coverage thread.

Condition DtRadarCoverageMonitor::myRadarCoverageCondition
mutableprotected
ConditionMutex DtRadarCoverageMonitor::myRadarCoverageConditionMutex
mutableprotected
tbb::atomic<bool> DtRadarCoverageMonitor::myShutdownRadarCoverageThreadFlag
protected
tbb::atomic<bool> DtRadarCoverageMonitor::myClearPendingIntersections
protected
tbb::spin_mutex DtRadarCoverageMonitor::myRadarCoverageAdditionMutex
protected
std::vector<RadarCoverageResult> DtRadarCoverageMonitor::myRadarCoverageResults
protected
RadarCoverageRequests DtRadarCoverageMonitor::myRadarCoverageRequests
protected
bool DtRadarCoverageMonitor::myAltitudeMSL
protected
DtRadarCoverageAltitudeSettings DtRadarCoverageMonitor::myRadarCoverageAltitudeSettings
protected
bool DtRadarCoverageMonitor::myReset2D
protected
bool DtRadarCoverageMonitor::myReset3D
protected
PendingRadarCoverageRequestsMap DtRadarCoverageMonitor::myPendingRadarCoverageRequests
protected
tbb::spin_mutex DtRadarCoverageMonitor::myMonitoringMapMutex
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)