WSF
WsfBistaticSig Class Reference

A collection of one or more bistatic signature tables that represent the bistatic signature of a platform. More...

#include <WsfBistaticSig.hpp>

Inheritance diagram for WsfBistaticSig:
Collaboration diagram for WsfBistaticSig:

Classes

class  AzElAzElTable
class  Table
 A 'Table' represents the signature for a given frequency limit. More...
class  State
 A 'State' represents all of the tables for a given signature state. More...

Public Types

using PolFreqTableMapType = std::map<std::string, std::map<double, AzElAzElTable*>>
using TableSet = std::vector<Table>
using TableIndex = std::vector<Table>::size_type
using States = std::vector<State>
using StateIndex = std::vector<State>::size_type
using InterpolationType = ut::azel::InterpolationType
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Public Member Functions

 WsfBistaticSig ()=default
 ~WsfBistaticSig () override
WsfBistaticSigClone () const override
virtual bool Initialize ()
bool ProcessInput (UtInput &aInput) override
bool AddTable (AzElAzElTable *aTablePtr, WsfStringId aState, WsfEM_Types::Polarization aPolarization, double aFrequency, bool aIsACopy=false)
bool AddTable (UtAzElTable *aTablePtr, WsfStringId aState, WsfEM_Types::Polarization aPolarization, double aFrequency, double aTgtToXmtrAz, double aTgtToXmtrEl, bool aIsACopy=false)
float GetSignature (UtAzElLookup &aContext, WsfStringId aStateId, WsfEM_Types::Polarization aPolarization, double aFrequency, double aTgtToXmtrAz, double aTgtToXmtrEl, double aTgtToRcvrAz, double aTgtToRcvrEl)
void SelectTable (AzElAzElTable &aContext, WsfStringId aState, WsfEM_Types::Polarization aPolarization, double aFrequency)
bool IsA_ValidState (WsfStringId aId)
const StatesGetStates () const
void SetInterpolateTables (bool aInterpolateTables)
void SetInterpolationType (InterpolationType aInterpolationType)
void SetInterpTgtToXmtrAngles (bool aInterpTgtToXmtrAngles)
void SetInterpTgtToXmtrType (InterpolationType aIType)
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

Static Public Member Functions

static WsfBistaticSigGetDefaultSig ()

Additional Inherited Members

 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Detailed Description

A collection of one or more bistatic signature tables that represent the bistatic signature of a platform.

Member Typedef Documentation

◆ InterpolationType

using WsfBistaticSig::InterpolationType = ut::azel::InterpolationType

◆ PolFreqTableMapType

using WsfBistaticSig::PolFreqTableMapType = std::map<std::string, std::map<double, AzElAzElTable*>>

◆ StateIndex

using WsfBistaticSig::StateIndex = std::vector<State>::size_type

◆ States

using WsfBistaticSig::States = std::vector<State>

◆ TableIndex

using WsfBistaticSig::TableIndex = std::vector<Table>::size_type

◆ TableSet

using WsfBistaticSig::TableSet = std::vector<Table>

A 'TableSet' is just a collection of 'Table's. This represents the collection of tables for a given polarization within a signature state.

Constructor & Destructor Documentation

◆ WsfBistaticSig()

WsfBistaticSig::WsfBistaticSig ( )
default

◆ ~WsfBistaticSig()

WsfBistaticSig::~WsfBistaticSig ( )
override

Member Function Documentation

◆ AddTable() [1/2]

bool WsfBistaticSig::AddTable ( AzElAzElTable * aTablePtr,
WsfStringId aStateId,
WsfEM_Types::Polarization aPolarization,
double aFrequencyLimit,
bool aIsACopy = false )

Add a new table to the bistatic signature.

Parameters
aTablePtrPointer to the table to be added.
aStateIdString ID of the state name for which the table applies.
aPolarizationSignal polarization to which the table applies.
aFrequencyLimitUpper bound of the frequency to which the table applies.
aIsACopyIf 'false' then the table data is owned by the object. If 'true' then it is owned by some other instance of this object.
Returns
true if table added or false if a table for the requested state/polarization has already been defined.

References ok.

Referenced by GetDefaultSig(), and WsfBistaticSig().

◆ AddTable() [2/2]

bool WsfBistaticSig::AddTable ( UtAzElTable * aTablePtr,
WsfStringId aStateId,
WsfEM_Types::Polarization aPolarization,
double aFrequencyLimit,
double aTgtToXmtrAz,
double aTgtToXmtrEl,
bool aIsACopy = false )

Add a new table to the bistatic signature.

Parameters
aTablePtrPointer to the table to be added.
aStateIdString ID of the state name for which the table applies.
aPolarizationSignal polarization to which the table applies.
aFrequencyLimitUpper bound of the frequency to which the table applies.
aTgtToXmtrAzThe lower bound target->transmitter azimuth angle to which the table applies.
aTgtToXmtrElThe lower bound target->transmitter elevation angle to which the table applies.
aIsACopyIf 'false' then the table data is owned by the object. If 'true' then it is owned by some other instance of this object.
Returns
true if table added or false if a table for the requested state/polarization has already been defined.

References WsfBistaticSig::AzElAzElTable::mAzElTables, WsfBistaticSig::Table::mFrequencyLimit, WsfBistaticSig::AzElAzElTable::mTgtToXmtrAz, WsfBistaticSig::AzElAzElTable::mTgtToXmtrEl, and ok.

◆ Clone()

WsfBistaticSig * WsfBistaticSig::Clone ( ) const
overridevirtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfObject.

References WsfBistaticSig().

◆ GetDefaultSig()

WsfBistaticSig * WsfBistaticSig::GetDefaultSig ( )
static

Provide a default signature to be used if a signature is not defined.

Returns
Pointer to the default signature (1000 m^2).

References AddTable(), WsfEM_Types::cPOL_DEFAULT, WsfBistaticSig::AzElAzElTable::CreateConstantTable(), and WsfBistaticSig().

Referenced by SelectTable(), and WsfBistaticSig().

◆ GetSignature()

float WsfBistaticSig::GetSignature ( UtAzElLookup & aContext,
WsfStringId aStateId,
WsfEM_Types::Polarization aPolarization,
double aFrequency,
double aTgtToXmtrAz,
double aTgtToXmtrEl,
double aTgtToRcvrAz,
double aTgtToRcvrEl )

Get the bistatic signature for a given set of conditions.

Parameters
aContext[output] The updated table lookup context representing the selected signature table.
aStateId[input] The string ID representing the signature state to be used.
aPolarization[input] The polarization of the signal.
aFrequency[input] The frequency of the signal (Hz).
aTgtToXmtrAz[input] The azimuth of the transmitter with respect to the target.
aTgtToXmtrEl[input] The elevation of the transmitter with respect to the target.
aTgtToRcvrAz[input] The azimuth of the receiver with respect to the target.
aTgtToRcvrEl[input] The elevation of the receiver with respect to the target.
Returns
The bistatic cross section (m^2)

References WsfBistaticSig::AzElAzElTable::mAzElTables, WsfBistaticSig::AzElAzElTable::mTgtToXmtrAz, WsfBistaticSig::AzElAzElTable::mTgtToXmtrAzLU, WsfBistaticSig::AzElAzElTable::mTgtToXmtrAzU, WsfBistaticSig::AzElAzElTable::mTgtToXmtrEl, WsfBistaticSig::AzElAzElTable::mTgtToXmtrElLU, WsfBistaticSig::AzElAzElTable::mTgtToXmtrElU, and SelectTable().

Referenced by WsfBistaticSig().

◆ GetStates()

const States & WsfBistaticSig::GetStates ( ) const
inline

Return the signatures for all of defined states.

Note
This method was created to allow External Services access to signature data. It should not be considered part of the public interface as it is exposing data that was once 'private'. Use at your own risk.

◆ Initialize()

bool WsfBistaticSig::Initialize ( )
virtual

Initialize the bistatic signature.

This MUST be called prior to calling SelectTable. It performs the following:

  • Verifies that the signature state 'default' is defined.
  • Verifies that the 'default' polarization signature is defined for each signature state.

For every polarization within a signature state that does not have a signature defined, this routine will create a copy of the signature for the 'default' polarization. This Speeds up signature selection in SelectTable.

Returns
'true' if successful or 'false' if the required 'default' data is not present.

References WsfEM_Types::cPOL_COUNT, WsfEM_Types::cPOL_DEFAULT, WsfEM_Types::cPOL_HORIZONTAL, WsfEM_Types::cPOL_LEFT_CIRCULAR, WsfEM_Types::cPOL_RIGHT_CIRCULAR, WsfEM_Types::cPOL_SLANT_135, WsfEM_Types::cPOL_SLANT_45, WsfEM_Types::cPOL_VERTICAL, WsfEM_Util::EnumToString(), and ok.

Referenced by WsfBistaticSig().

◆ IsA_ValidState()

bool WsfBistaticSig::IsA_ValidState ( WsfStringId aId)

Checks to make the entered state Id exists, returns true if it exists, false otherwise.

Parameters
aIdthe name Id of the state.
Returns
Returns true if provided state exists.

Referenced by WsfBistaticSig().

◆ ProcessInput()

bool WsfBistaticSig::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

◆ SelectTable()

void WsfBistaticSig::SelectTable ( AzElAzElTable & aContext,
WsfStringId aStateId,
WsfEM_Types::Polarization aPolarization,
double aFrequency )

Select a bistatic signature table for a given signature state, signal polarization and signal frequency.

Parameters
aContext[output] The updated table lookup context representing the selected signature table.
aStateId[input] The string ID representing the signature state to be used.
aPolarization[input] The polarization of the signal.
aFrequency[input] The frequency of the signal.

References WsfEM_Types::cPOL_DEFAULT, GetDefaultSig(), and WsfBistaticSig().

Referenced by GetSignature(), and WsfBistaticSig().

◆ SetInterpolateTables()

void WsfBistaticSig::SetInterpolateTables ( bool aInterpolateTables)
inline

◆ SetInterpolationType()

void WsfBistaticSig::SetInterpolationType ( InterpolationType aInterpolationType)
inline

◆ SetInterpTgtToXmtrAngles()

void WsfBistaticSig::SetInterpTgtToXmtrAngles ( bool aInterpTgtToXmtrAngles)
inline

◆ SetInterpTgtToXmtrType()

void WsfBistaticSig::SetInterpTgtToXmtrType ( InterpolationType aIType)
inline

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