VR-Forces 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 | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
DtSensorSignatureManager Class Reference

Central manager for calculating apparent signatures in all the sensor domains. Apparent signatures are computed by querying the VRF object state repository of the target entity for its absolute (inherent) signature in the sensor domain, and then running a propagation model for that domain to correct the signature for the viewing location.

The sensor signature manager is created by DtPhysicalWorld, and access to the manager is through DtPhysicalWorld. Signature propagators are created from the DtSignaturePropagatorFactory based on the sensor domain specified in the original query.

Classes

struct  SignatureCalculator
 

Public Member Functions

virtual ~DtSensorSignatureManager ()
 
virtual void reinitialize ()
 
virtual std::vector< DtStringsensorDomains () const
 
virtual void deleteBaseSignatures ()
 
virtual double calculateBaseSignature (const DtSymbolString &sensorDomain, DtSimObjectReference baseObject) const
 
virtual double apparentObjectSignature (const DtSymbolString &sensorDomain, const DtSignaturePropagatorArgs &propagatorArgs, bool *dataAvailable=nullptr) const
 
virtual double apparentObjectSignature (const DtSymbolString &sensorDomain, DtSimObjectReference targetObject, DtSimObjectReference viewingObject, bool *dataAvailable=nullptr) const
 
virtual double apparentObjectSignature (const DtSignaturePropagator *propagator, const DtSymbolString &sensorDomain, const DtSignaturePropagatorArgs &propagatorArgs, bool *dataAvailable=nullptr) const
 
virtual bool createPropagatorsFromDescriptorList (const DtSignaturePropagatorDescriptorList &descList)
 

Static Public Member Functions

static DtSensorSignatureManagercreate (DtPhysicalWorld *physicalWorld)
 

Protected Types

typedef std::map
< DtSymbolString,
DtSignaturePropagator * > 
DtSignaturePropagatorMap
 
typedef std::list
< DtSignatureModifierEvaluator * > 
SignatureModifierEvalList
 
typedef std::map
< DtSymbolString,
SignatureCalculator
SignatureCalculators
 
typedef std::map< DtString,
SignatureCalculators
SignatureCalculatorsMap
 

Protected Member Functions

 DtSensorSignatureManager (DtPhysicalWorld *physicalWorld)
 
virtual bool init ()
 
virtual const
DtSignaturePropagator
propagatorForDomain (const DtSymbolString &domain) const
 
void deleteSignaturePropagators ()
 
virtual double modifySignature (DtSimObjectReference simObject, const std::list< DtSignatureModifierEvaluator * > &, double baseSignature) const
 

Protected Attributes

DtPhysicalWorldmyPhysicalWorld
 
DtSignaturePropagatorMap mySignaturePropagatorMap
 
SignatureCalculatorsMap mySignatureCalculatorsMap
 
tbb::spin_rw_mutex mySignatureCalculatorsMapMutex
 

Private Member Functions

 DtSensorSignatureManager ()
 
 DtSensorSignatureManager (const DtSensorSignatureManager &orig)
 
DtSensorSignatureManageroperator= (const DtSensorSignatureManager &orig)
 

Member Typedef Documentation

Maps for getting base sensor signature.

This type maps domain name to a list of evaluators for that domain.

This is a map from object type string to (a map of) calculators for that type.

Constructor & Destructor Documentation

DtSensorSignatureManager::DtSensorSignatureManager ( )
private

Not implemented.

DtSensorSignatureManager::DtSensorSignatureManager ( const DtSensorSignatureManager orig)
private

Not implemented.

DtSensorSignatureManager::DtSensorSignatureManager ( DtPhysicalWorld physicalWorld)
protected

Protected to prevent uninitialized instances of DtSensorSignatureManager. Call create() to instantiate a new DtSensorSignatreManager.

virtual DtSensorSignatureManager::~DtSensorSignatureManager ( )
virtual

Member Function Documentation

DtSensorSignatureManager& DtSensorSignatureManager::operator= ( const DtSensorSignatureManager orig)
private

Not implemented.

virtual bool DtSensorSignatureManager::init ( )
protectedvirtual

Called by create() after constructor.

Returns
True on success.
static DtSensorSignatureManager* DtSensorSignatureManager::create ( DtPhysicalWorld physicalWorld)
static

Constructs a new instance, and calls init() on it.

Returns
A new instance of DtSensorSignatureManager, or NULL if init() fails.
virtual void DtSensorSignatureManager::reinitialize ( )
virtual

Resets any internals when scenario is closed.

virtual std::vector<DtString> DtSensorSignatureManager::sensorDomains ( ) const
virtual
Returns
Sensor domains
virtual void DtSensorSignatureManager::deleteBaseSignatures ( )
virtual

Clears out any cached signature evaluators.

virtual double DtSensorSignatureManager::calculateBaseSignature ( const DtSymbolString sensorDomain,
DtSimObjectReference  baseObject 
) const
virtual
Returns
Base signature Given the DtSimObject, find its object type, and, look up its list of signature modifiers for the given domain.
If the map of modifiers (mySignatureCalculatorsMap) does not have an entry for the object type, create an entry for this type by reading data from the object parameters. The parameters entry for sensor-signatures will have a base signature and a list of modifiers for one or more domains. (Typically these are listed in the platform (.ope) files. The modifier entries also refer to data files in vrfSim/signatureRules that provide parameters to the modifier entries.)
Then use the base signature and the list of modifiers to calculate the signature for the object in this domain.
virtual double DtSensorSignatureManager::apparentObjectSignature ( const DtSymbolString sensorDomain,
const DtSignaturePropagatorArgs propagatorArgs,
bool dataAvailable = nullptr 
) const
virtual
Returns
The signature of the specified object as seen from the specified location, in the specified sensor domain. This may include effects such as drop off over range, terrain obscuration, etc. depending on the sensor domain and the DtSignaturePropagator used for this domain.
virtual double DtSensorSignatureManager::apparentObjectSignature ( const DtSymbolString sensorDomain,
DtSimObjectReference  targetObject,
DtSimObjectReference  viewingObject,
bool dataAvailable = nullptr 
) const
virtual

Convenience function. Creates a DtSignaturePropagatorArgs with the provided target and viewing object, and calls the above function.

virtual double DtSensorSignatureManager::apparentObjectSignature ( const DtSignaturePropagator propagator,
const DtSymbolString sensorDomain,
const DtSignaturePropagatorArgs propagatorArgs,
bool dataAvailable = nullptr 
) const
virtual

Convenience function. Allows you to pass in a custom propagator that a user created along with the arguments that they added. This does the same as apparentObjectSignature(const DtSymbolString& sensorDomain, const DtSignaturePropagatorArgs& propagatorArgs) const.

virtual bool DtSensorSignatureManager::createPropagatorsFromDescriptorList ( const DtSignaturePropagatorDescriptorList descList)
virtual

Instantiates a new propagator for each sensor domain specified in the provided descriptor list using the DtSensorSignatureFactory and the types specified. New propagators are put in mySignaturePropagatorMap indexed by domain.

Returns
true if all succeed.
virtual const DtSignaturePropagator* DtSensorSignatureManager::propagatorForDomain ( const DtSymbolString domain) const
protectedvirtual

Returns the signature propagator for the specified domain by looking it up in mySignaturePropagatorMap. If one is not found and cannot be created, returns NULL.

void DtSensorSignatureManager::deleteSignaturePropagators ( )
protected

Removes and deletes all propagators from mySignaturePropagatorMap. Non-virtual because it is called from the destructor.

virtual double DtSensorSignatureManager::modifySignature ( DtSimObjectReference  simObject,
const std::list< DtSignatureModifierEvaluator * > &  ,
double  baseSignature 
) const
protectedvirtual

Calls the evaluators in the list to modify the base signature. Used in calculateBaseSignature.

Member Data Documentation

DtPhysicalWorld* DtSensorSignatureManager::myPhysicalWorld
protected
DtSignaturePropagatorMap DtSensorSignatureManager::mySignaturePropagatorMap
protected
SignatureCalculatorsMap DtSensorSignatureManager::mySignatureCalculatorsMap
mutableprotected
tbb::spin_rw_mutex DtSensorSignatureManager::mySignatureCalculatorsMapMutex
mutableprotected

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)