WSF
SOSM_Target Class Referenceabstract

Abstract base class that represents a target. More...

#include <SOSM_Target.hpp>

Inheritance diagram for SOSM_Target:
Collaboration diagram for SOSM_Target:

Classes

class  StateBase
class  SharedData

Public Member Functions

 SOSM_Target (SOSM_Manager *aManagerPtr)
 Constructor.
 SOSM_Target (const SOSM_Target &aSrc)
 Copy constructor.
SOSM_Targetoperator= (const SOSM_Target &)=delete
virtual SOSM_TargetClone () const =0
 A virtual copy constructor.
bool Initialize () override
void InputComplete () override
bool ProcessInput (UtInput &aInput) override
virtual void ComputeRadiantIntensity (const SOSM_SpectralObject &aRequestor, SOSM_Interaction &aInteraction, std::vector< float > &aBodyIntensity, float &aBodyArea, std::vector< float > &aPlumeIntensity, float &aPlumeArea)=0
virtual void GetSamplePoints (SOSM_Interaction &aInteraction, std::vector< float > &aAzValues, std::vector< float > &aElValues)=0
virtual void GetSampleTargetState (SOSM_Interaction &aInteraction, float &aAltitude, float &aSpeed, float &aThrottle)=0
size_t StateCount () const
 Return the number of defined states.
const StateBaseStateEntry (size_t aIndex) const
size_t SelectState (SOSM_Interaction &aInteraction) const
 Select a state using the current target state from an interaction object.
SOSM_ManagerGetManager () const
Public Member Functions inherited from SOSM_CoreBase
 SOSM_CoreBase ()
 SOSM_CoreBase (const SOSM_CoreBase &aSrc)
 ~SOSM_CoreBase () override
SOSM_CoreBaseoperator= (const SOSM_CoreBase &)=delete
std::string GetTypeName () const
 Return the user-specified type name of the object.
void SetTypeName (const std::string &aTypeName)
 Set the user-specified type name of the object.
double GetModificationTime () const
 Return when the source file from which the object was recreated was last modified.
void SetModificationTime (double aModificationTime)
 Set the last modification time of the object.
void UpdateModificationTime (double aModificationTime)
std::string GetCachePrefix () const
 Return the name of the cache prefix for this object.
void SetCachePrefix (const std::string &aCachePrefix)
 Set the cache prefix (subdirectory) to be used for creating cache files of this object.
Public Member Functions inherited from SOSM_SpectralObject
 SOSM_SpectralObject ()
 SOSM_SpectralObject (float aOrigin, float aIncrement, int aCount)
virtual ~SOSM_SpectralObject ()
float Origin () const
 Return the origin (wavenumber, cm-1) of the first sample point.
float Increment () const
int Count () const
void DefineSpectralLimits (float aOrigin, float aIncrement, int aCount)
void DefineSpectralLimits (const SOSM_SpectralObject &aSource)
bool Equals (const SOSM_SpectralObject &aRhs) const
 Do this object and another object have the same spectral limits?
Status Union (const SOSM_SpectralObject &aObject)
Status Union (const SOSM_SpectralObject &aObject1, const SOSM_SpectralObject &aObject2)
float LowerWavelength () const
float UpperWavelength () const
void SetWavelengthLimits (float aLowerWavelength, float aUpperWavelength)

Protected Member Functions

virtual StateBaseCreateState (const std::string &aStateName) const =0

Protected Attributes

SOSM_ManagermManagerPtr
std::shared_ptr< SharedDatamSharedDataPtr
 A pointer to the shared state data.
UtAtmosphere mAtmosphere
 An atmosphere for converting speed to Mach number.
std::recursive_mutex mMutex
 A mutex for locking access to the atmosphere object (UtAtmosphere is not thread-safe).
Protected Attributes inherited from SOSM_CoreBase
double mModificationTime
 When the file was last modified.
std::string mTypeName
 The type name of the object.
std::string mCachePrefix

Additional Inherited Members

Public Types inherited from SOSM_SpectralObject
enum  Status { cOK = 0 , cINCOMPATIBLE_INCREMENTS , cINCOMPATIBLE_ORIGINS }
 Return value from 'UnionOf'. More...
Static Public Member Functions inherited from SOSM_SpectralObject
static std::string StatusString (Status aStatus)

Detailed Description

Abstract base class that represents a target.

Constructor & Destructor Documentation

◆ SOSM_Target() [1/2]

◆ SOSM_Target() [2/2]

SOSM_Target::SOSM_Target ( const SOSM_Target & aSrc)

Member Function Documentation

◆ Clone()

virtual SOSM_Target * SOSM_Target::Clone ( ) const
pure virtual

A virtual copy constructor.

Implemented in SOSM_SimpleTarget, and SOSM_TableTarget.

References SOSM_Target().

Referenced by SOSM_Manager::AllocateTarget().

◆ ComputeRadiantIntensity()

virtual void SOSM_Target::ComputeRadiantIntensity ( const SOSM_SpectralObject & aRequestor,
SOSM_Interaction & aInteraction,
std::vector< float > & aBodyIntensity,
float & aBodyArea,
std::vector< float > & aPlumeIntensity,
float & aPlumeArea )
pure virtual

Get the radiant intensity of this target.

Parameters
aRequestor[input] The spectral definition (origin/increment/count) of the sensor.
aInteraction[input] The interaction object representing the sensor and target state.
aBodyIntensity[output] The radiant intensity of the body without the plume (W/sr/um). Also known as I_AF.
aBodyArea[output] The presented area of the body without the plume (cm^2). Also known as A_AF.
aPlumeIntensity[output] The radiant intensity of the plume (W/sr/um). Also known as I_PL.
aPlumeArea[output] The presented area of the plume (cm^2). Also known as A_PL

Implemented in SOSM_SimpleTarget, and SOSM_TableTarget.

References SOSM_SpectralObject::SOSM_SpectralObject().

Referenced by SOSM_Sensor::ComputeIntegratedTargetData(), and SOSM_Sensor::ComputeTargetIrradiance().

◆ CreateState()

virtual StateBase * SOSM_Target::CreateState ( const std::string & aStateName) const
protectedpure virtual

Class specific state allocator.

This is a method that must be defined by the derived class which instantiates a new State object that is specific to the derived class.

Implemented in SOSM_SimpleTarget, and SOSM_TableTarget.

Referenced by ProcessInput().

◆ GetManager()

◆ GetSamplePoints()

virtual void SOSM_Target::GetSamplePoints ( SOSM_Interaction & aInteraction,
std::vector< float > & aAzValues,
std::vector< float > & aElValues )
pure virtual

Get the sample points of the currently selected state (fast detection mode table generation).

Parameters
aInteraction[input] The interaction object for the current state.
aAzValues[output] Azimuth sample points (radians).
aElValues[output] Elevation sample points (radians).

Implemented in SOSM_SimpleTarget, and SOSM_TableTarget.

◆ GetSampleTargetState()

virtual void SOSM_Target::GetSampleTargetState ( SOSM_Interaction & aInteraction,
float & aAltitude,
float & aSpeed,
float & aThrottle )
pure virtual

Get the sample target state (altitude, speed, throttle) (for fast detection mode table generation).

Parameters
aInteraction[input] The interaction object for the current state.
aAltitude[output] Altitude sample point (meters).
aSpeed[output] Speed sample point (meters/second).
aThrottle[output] Throttle sample point (unitless [0..1]).

Implemented in SOSM_SimpleTarget, and SOSM_TableTarget.

◆ Initialize()

bool SOSM_Target::Initialize ( )
overridevirtual

Reimplemented from SOSM_CoreBase.

Referenced by SOSM_Manager::AllocateTarget().

◆ InputComplete()

void SOSM_Target::InputComplete ( )
overridevirtual

Reimplemented from SOSM_CoreBase.

References mSharedDataPtr.

Referenced by SOSM_TableTarget::InputComplete().

◆ operator=()

SOSM_Target & SOSM_Target::operator= ( const SOSM_Target & )
delete

References SOSM_Target().

◆ ProcessInput()

bool SOSM_Target::ProcessInput ( UtInput & aInput)
overridevirtual

Reimplemented from SOSM_CoreBase.

References CreateState(), mAtmosphere, and mSharedDataPtr.

◆ SelectState()

size_t SOSM_Target::SelectState ( SOSM_Interaction & aInteraction) const

◆ StateCount()

size_t SOSM_Target::StateCount ( ) const
inline

Return the number of defined states.

References mSharedDataPtr.

Referenced by SOSM_SensorTarget::SnrTgtPair::SnrTgtPair().

◆ StateEntry()

const StateBase * SOSM_Target::StateEntry ( size_t aIndex) const
inline

Return the state of the specified index.

Parameters
aIndexThe index of the desired state. This should be in the range [0 .. StateCount()-1].

References mSharedDataPtr.

Referenced by SOSM_SimpleTarget::BodyTemperature(), SOSM_SimpleTarget::ComputeRadiantIntensity(), SOSM_TableTarget::ComputeRadiantIntensity(), SOSM_TableTarget::GetSamplePoints(), SOSM_SimpleTarget::GetSampleTargetState(), and SOSM_Interaction::Print().

Member Data Documentation

◆ mAtmosphere

UtAtmosphere SOSM_Target::mAtmosphere
protected

◆ mManagerPtr

SOSM_Manager* SOSM_Target::mManagerPtr
protected

◆ mMutex

std::recursive_mutex SOSM_Target::mMutex
mutableprotected

A mutex for locking access to the atmosphere object (UtAtmosphere is not thread-safe).

Referenced by SOSM_SimpleTarget::BodyTemperature(), SOSM_SimpleTarget::GetSampleTargetState(), SelectState(), SOSM_Target(), and SOSM_Target().

◆ mSharedDataPtr

std::shared_ptr<SharedData> SOSM_Target::mSharedDataPtr
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved