WSF
SOSM_TableTarget Class Reference

#include <SOSM_TableTarget.hpp>

Inheritance diagram for SOSM_TableTarget:
Collaboration diagram for SOSM_TableTarget:

Classes

class  Component
 A 'Component' represents something like a cold_part, hot part or plume. More...
class  Band
class  TT_State
 A 'State' represents the signature for a given operating mode. More...

Public Member Functions

 SOSM_TableTarget (SOSM_Manager *aManagerPtr)
 SOSM_TableTarget (const SOSM_TableTarget &aSrc)
SOSM_TableTargetoperator= (const SOSM_TableTarget &)=delete
SOSM_TargetClone () const override
 A virtual copy constructor.
void InputComplete () override
void ComputeRadiantIntensity (const SOSM_SpectralObject &aRequestor, SOSM_Interaction &aInteraction, std::vector< float > &aBodyIntensity, float &aBodyArea, std::vector< float > &aPlumeIntensity, float &aPlumeArea) override
void GetSamplePoints (SOSM_Interaction &aInteraction, std::vector< float > &aAzValues, std::vector< float > &aElValues) override
void GetSampleTargetState (SOSM_Interaction &aInteraction, float &aAltitude, float &aSpeed, float &aThrottle) override
Public Member Functions inherited from SOSM_Target
 SOSM_Target (SOSM_Manager *aManagerPtr)
 Constructor.
 SOSM_Target (const SOSM_Target &aSrc)
 Copy constructor.
SOSM_Targetoperator= (const SOSM_Target &)=delete
bool Initialize () override
void InputComplete () override
bool ProcessInput (UtInput &aInput) override
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 Types

using AreaTablePtr = SOSM_ScalarTable2D::TablePtr
using IntensityTablePtr = std::shared_ptr<SOSM_SpectralTable2D>

Protected Member Functions

StateBaseCreateState (const std::string &aStateName) const override

Static Protected Member Functions

static AreaTablePtr LoadAreaTable (const std::string &aFileName, const std::string &aCachePrefix)
static IntensityTablePtr LoadIntensityTable (const std::string &aFileName, const std::string &aCachePrefix)

Persistent collection of radiant intensity tables.

A persistent collection of tables is maintained. Requests to load the same table multiple times will result in only one copy of the table being loaded and all common references will point to the one copy.

SOSM_ScalarTable2D maintains the persistent list of area tables.

typedef std::map< std::string, IntensityTablePtrIntensityTableMap
static IntensityTableMap sIntensityTables
 The persistent collection of radiant intensity tables that have been read, indexed by filename.

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)
Protected Attributes inherited from SOSM_Target
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

Detailed Description

A target defined by a tables.

This class models the target signature using tabular data. The signature can be separated into body and plume.

Member Typedef Documentation

◆ AreaTablePtr

◆ IntensityTableMap

typedef std::map<std::string, IntensityTablePtr> SOSM_TableTarget::IntensityTableMap
protected

◆ IntensityTablePtr

using SOSM_TableTarget::IntensityTablePtr = std::shared_ptr<SOSM_SpectralTable2D>
protected

Constructor & Destructor Documentation

◆ SOSM_TableTarget() [1/2]

SOSM_TableTarget::SOSM_TableTarget ( SOSM_Manager * aManagerPtr)

◆ SOSM_TableTarget() [2/2]

SOSM_TableTarget::SOSM_TableTarget ( const SOSM_TableTarget & aSrc)

Member Function Documentation

◆ Clone()

SOSM_Target * SOSM_TableTarget::Clone ( ) const
overridevirtual

A virtual copy constructor.

Implements SOSM_Target.

References SOSM_TableTarget(), and SOSM_Target::SOSM_Target().

◆ ComputeRadiantIntensity()

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

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

Implements SOSM_Target.

References SOSM_Selector::cINTERSECTS, SOSM_Selector::Count(), SOSM_SpectralObject::Count(), SOSM_Interaction::GetTargetToSensorAspect(), SOSM_Selector::Intersect(), SOSM_TableTarget::Component::mAreaTablePtr, SOSM_TableTarget::TT_State::mBandList, SOSM_TableTarget::Band::mBody, SOSM_TableTarget::Component::mIntensityTablePtr, SOSM_TableTarget::Band::mPlume, SOSM_Interaction::mTargetStateIndex, SOSM_Selector::OutputStartIndex(), SOSM_SpectralObject::SOSM_SpectralObject(), and SOSM_Target::StateEntry().

◆ CreateState()

SOSM_Target::StateBase * SOSM_TableTarget::CreateState ( const std::string & aStateName) const
overrideprotectedvirtual

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.

Implements SOSM_Target.

◆ GetSamplePoints()

void SOSM_TableTarget::GetSamplePoints ( SOSM_Interaction & aInteraction,
std::vector< float > & aAzValues,
std::vector< float > & aElValues )
overridevirtual

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).

Implements SOSM_Target.

References SOSM_TableTarget::TT_State::mBandList, SOSM_TableTarget::Band::mBody, SOSM_TableTarget::Component::mIntensityTablePtr, SOSM_TableTarget::Band::mPlume, SOSM_Interaction::mTargetStateIndex, and SOSM_Target::StateEntry().

◆ GetSampleTargetState()

void SOSM_TableTarget::GetSampleTargetState ( SOSM_Interaction & aInteraction,
float & aAltitude,
float & aSpeed,
float & aThrottle )
overridevirtual

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]).

Implements SOSM_Target.

◆ InputComplete()

void SOSM_TableTarget::InputComplete ( )
overridevirtual

◆ LoadAreaTable()

AreaTablePtr SOSM_TableTarget::LoadAreaTable ( const std::string & aFileName,
const std::string & aCachePrefix )
staticprotected

◆ LoadIntensityTable()

IntensityTablePtr SOSM_TableTarget::LoadIntensityTable ( const std::string & aFileName,
const std::string & aCachePrefix )
staticprotected

◆ operator=()

Member Data Documentation

◆ sIntensityTables

SOSM_TableTarget::IntensityTableMap SOSM_TableTarget::sIntensityTables
staticprotected

The persistent collection of radiant intensity tables that have been read, indexed by filename.

Referenced by SOSM_TableTarget::Component::LoadIntensityTable().


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