|
WSF
|
#include <SOSM_SensorTarget.hpp>

Classes | |
| class | SnrAtmPair |
| class | SnrTgtPair |
Public Member Functions | |
| SOSM_SensorTarget (SOSM_Manager *aManagerPtr) | |
| virtual | ~SOSM_SensorTarget () |
| bool | Initialize (const std::string &aSensorType, const std::string &aTargetType) |
| float | ComputeTargetIrradiance (SOSM_Interaction &aInteraction) const |
| float | ComputeProbabilityOfDetection (float aTargetIrradiance, SOSM_Interaction &aInteraction) const |
| SOSM_Sensor * | GetSensor () const |
| SOSM_Target * | GetTarget () const |
| SOSM_Manager * | GetManager () const |
Protected Types | |
| typedef std::map< std::string, SnrAtmPair * > | SnrAtmTableMap |
| The key is '<snr-type>_<atm_type>'. | |
| typedef std::map< std::string, SnrTgtPair * > | SnrTgtTableMap |
| The key is '<snr-type>_<tgt_type>_<tgt_state>'. | |
Protected Member Functions | |
| SOSM_SensorTarget (const SOSM_SensorTarget &aSrc)=delete | |
| Copy constructor declared but not defined to prevent use. | |
| SOSM_SensorTarget | operator= (const SOSM_SensorTarget &aRhs)=delete |
| Assignment operator declared but not defined to prevent use. | |
| SnrAtmPair * | CreateOrLoadSensorAtmosphereTables () |
| SnrTgtPair * | CreateOrLoadSensorTargetTables () |
| void | LoadSensorTargetTables () |
| Load precomputed sensor-target specific tables if permitted. | |
Protected Attributes | |
| SOSM_Manager * | mManagerPtr |
| SOSM_Sensor * | mSensorPtr |
| SOSM_Target * | mTargetPtr |
| bool | mUsingTables |
| SnrAtmPair * | mSnrAtmPtr |
| SnrTgtPair * | mSnrTgtPtr |
Static Protected Attributes | |
| static SnrAtmTableMap | sSnrAtmTables |
| static SnrTgtTableMap | sSnrTgtTables |
A sensor-target pair.
There are two basic ways to perform sensor/target interactions:
The main function of this class is to isolate to calling application from knowing which method is being used. The caller is simply responsible for instantiating and initializing one of these objects for a given sensor/target pair.
An application may choose to either maintain one of these objects for each sensor-type/target-type pair or one for each sensor/target pair. The second method is more efficient (and thread-safe) because the some of the models maintain a persistent state that works most efficiently when not changing between targets. The first method is NOT thread-safe. The disadvantage is that each pairing takes about 100 bytes, which should be no problem (unless has about 10000 bodies, all which have IR sensors detecting all targets!)
|
protected |
The key is '<snr-type>_<atm_type>'.
|
protected |
The key is '<snr-type>_<tgt_type>_<tgt_state>'.
| SOSM_SensorTarget::SOSM_SensorTarget | ( | SOSM_Manager * | aManagerPtr | ) |
References mManagerPtr, mSensorPtr, mSnrAtmPtr, mSnrTgtPtr, mTargetPtr, and mUsingTables.
Referenced by operator=(), and SOSM_SensorTarget().
|
virtual |
References mSensorPtr, and mTargetPtr.
|
protecteddelete |
Copy constructor declared but not defined to prevent use.
References SOSM_SensorTarget().
| float SOSM_SensorTarget::ComputeProbabilityOfDetection | ( | float | aTargetIrradiance, |
| SOSM_Interaction & | aInteraction ) const |
Compute the probability of detection for a specified target irradiance.
| aTargetIrradiance | [input] The irradiance on the sensor while looking at the target of interest. (W/cm^2) |
| aInteraction | [input] The interaction object representing the sensor and target state. |
References mSensorPtr.
Referenced by WsfSOSM_Sensor::SOSM_Mode::AttemptToDetect().
| float SOSM_SensorTarget::ComputeTargetIrradiance | ( | SOSM_Interaction & | aInteraction | ) | const |
Compute the irradiance on the sensor when looking at the target.
| aInteraction | [input] The interaction object representing the sensor and target state. |
References SOSM_Interaction::GetAbsoluteTargetElevation(), SOSM_Interaction::GetSensorAltitude(), SOSM_Interaction::GetSlantRange(), SOSM_Interaction::GetTargetToSensorAspect(), SOSM_Interaction::mBackgroundRadiance, SOSM_Interaction::mBackgroundScaleFactor, SOSM_Interaction::mBodyArea, SOSM_Interaction::mBodyIntensity, SOSM_Interaction::mContrastIntensity, SOSM_Interaction::mForegroundRadiance, SOSM_Interaction::mForegroundScaleFactor, mManagerPtr, SOSM_Interaction::mPlumeArea, SOSM_Interaction::mPlumeIntensity, mSensorPtr, mSnrAtmPtr, mSnrTgtPtr, mTargetPtr, SOSM_Interaction::mTransmittance, SOSM_Interaction::mTransmittanceScaleFactor, mUsingTables, and SOSM_Interaction::Print().
Referenced by WsfSOSM_Sensor::SOSM_Mode::AttemptToDetect().
|
protected |
References SOSM_ScalarTable2D::DV(), SOSM_ScalarTable3D::DV(), SOSM_Utility::FileModificationTime(), SOSM_ScalarTable2D::IV1(), SOSM_ScalarTable3D::IV1(), SOSM_ScalarTable2D::IV2(), SOSM_ScalarTable3D::IV2(), SOSM_ScalarTable3D::IV3(), mManagerPtr, mSensorPtr, SOSM_SimpleInteraction::SetAbsoluteTargetElevation(), SOSM_SimpleInteraction::SetSensorAltitude(), and SOSM_SimpleInteraction::SetSlantRange().
Referenced by LoadSensorTargetTables(), and operator=().
|
protected |
References SOSM_ScalarTable2D::DV(), SOSM_Utility::FileModificationTime(), SOSM_ScalarTable2D::IV1(), SOSM_ScalarTable2D::IV2(), mManagerPtr, mSensorPtr, mTargetPtr, SOSM_Interaction::mTargetStateIndex, SOSM_SimpleInteraction::SetTargetAltitude(), SOSM_SimpleInteraction::SetTargetSpeed(), SOSM_SimpleInteraction::SetTargetThrottle(), and SOSM_SimpleInteraction::SetTargetToSensorAspect().
Referenced by LoadSensorTargetTables(), and operator=().
|
inline |
References mManagerPtr.
|
inline |
References mSensorPtr.
Referenced by WsfSOSM_Sensor::SOSM_Mode::AttemptToDetect().
|
inline |
References mTargetPtr.
Referenced by WsfSOSM_Sensor::SOSM_Mode::AttemptToDetect().
| bool SOSM_SensorTarget::Initialize | ( | const std::string & | aSensorType, |
| const std::string & | aTargetType ) |
References LoadSensorTargetTables(), mManagerPtr, mSensorPtr, mTargetPtr, mUsingTables, and ok.
Referenced by SOSM_Manager::AllocateSensorTargetPair().
|
protected |
Load precomputed sensor-target specific tables if permitted.
References CreateOrLoadSensorAtmosphereTables(), CreateOrLoadSensorTargetTables(), mSensorPtr, mSnrAtmPtr, mSnrTgtPtr, mTargetPtr, mUsingTables, sSnrAtmTables, and sSnrTgtTables.
Referenced by Initialize(), and operator=().
|
protecteddelete |
Assignment operator declared but not defined to prevent use.
References CreateOrLoadSensorAtmosphereTables(), CreateOrLoadSensorTargetTables(), LoadSensorTargetTables(), and SOSM_SensorTarget().
|
protected |
|
protected |
|
protected |
Referenced by ComputeTargetIrradiance(), LoadSensorTargetTables(), and SOSM_SensorTarget().
|
protected |
Referenced by ComputeTargetIrradiance(), LoadSensorTargetTables(), and SOSM_SensorTarget().
|
protected |
|
protected |
Referenced by ComputeTargetIrradiance(), Initialize(), LoadSensorTargetTables(), and SOSM_SensorTarget().
|
staticprotected |
Referenced by LoadSensorTargetTables().
|
staticprotected |
Referenced by LoadSensorTargetTables().