WSF
WsfAntennaPattern Class Reference

#include <WsfAntennaPattern.hpp>

Inheritance diagram for WsfAntennaPattern:
Collaboration diagram for WsfAntennaPattern:

Classes

class  GainAdjustmentTable
class  BaseData

Public Member Functions

 WsfAntennaPattern ()
 WsfAntennaPattern (BaseData *aBasePtr)
 ~WsfAntennaPattern () override
WsfAntennaPatternClone () const override
const char * GetScriptClassName () const override
virtual double GetGain (double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El)
virtual WSF_DEPRECATED double GetAzimuthBeamwidth (double aFrequency) const final
virtual double GetAzimuthBeamwidth (double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const
virtual WSF_DEPRECATED double GetElevationBeamwidth (double aFrequency) const final
virtual double GetElevationBeamwidth (double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const
virtual double GetMinimumGain () const
virtual double GetPeakGain (double aFrequency) const
virtual const GainAdjustmentTableGetGainAdjustmentTable () const
virtual double GetGainAdjustment () const
virtual bool Initialize (WsfSimulation *aSimulationPtr)
bool ProcessInput (UtInput &aInput) override
virtual double GetGainThresholdFraction (double aGainThreshold, double aPeakGain, double aMinAz, double aMaxAz, double aFrequency)
virtual void SetAntennaBeamCount (unsigned int aBeamCount)
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 Attributes

static const char * cTYPE_KIND = "antenna_pattern"

Protected Member Functions

 WsfAntennaPattern (const WsfAntennaPattern &aSrc)
 Copy Constructor for Clone().
WsfAntennaPatternoperator= (const WsfAntennaPattern &aRhs)
virtual double ApplyEBS (double aBeamwidth, double aEBS_Az, double aEBS_El) const
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Protected Attributes

BaseDatamSharedDataPtr

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Detailed Description

Represents the gain of an antenna as a function of azimuth and elevation.

Antenna patterns are used by transmitters and receivers of electromagnetic radiation to compute the gain of the transmitted or received signal.

A given antenna pattern object will be shared amongst all objects that utilize the pattern.

Constructor & Destructor Documentation

◆ WsfAntennaPattern() [1/3]

WsfAntennaPattern::WsfAntennaPattern ( )

References mSharedDataPtr, and WsfObject::WsfObject().

Referenced by WsfALARM_AntennaPattern::Clone(), WsfALARM_AntennaPatternBanded::Clone(), Clone(), WsfElementESA_AntennaPattern::Clone(), WsfESA_AntennaPattern::Clone(), WsfESA_NX_AntennaPattern::Clone(), WsfGENAP_AntennaPattern::Clone(), WsfStandardAntennaPattern::Clone(), WsfALARM_AntennaPattern::ALARM_Data::Initialize(), WsfAntennaPattern::BaseData::Initialize(), WsfESA_AntennaPattern::ESA_Data::Initialize(), WsfESA_NX_AntennaPattern::ESA_NX_Data::Initialize(), WsfGENAP_AntennaPattern::GENAP_Data::Initialize(), WsfStandardAntennaPattern::StandardData::Initialize(), WsfALARM_AntennaPattern::ObjectFactory(), WsfALARM_AntennaPatternBanded::ObjectFactory(), WsfElementESA_AntennaPattern::ObjectFactory(), WsfESA_AntennaPattern::ObjectFactory(), WsfESA_NX_AntennaPattern::ObjectFactory(), WsfGENAP_AntennaPattern::ObjectFactory(), operator=(), WsfStandardAntennaPattern::operator=(), WsfStandardAntennaPattern::StandardData::ProcessCircularInput(), WsfStandardAntennaPattern::StandardData::ProcessCosecantSquaredInput(), WsfALARM_AntennaPattern::ALARM_Data::ProcessInput(), WsfAntennaPattern::BaseData::ProcessInput(), WsfElementESA_AntennaPattern::EESA_Data::ProcessInput(), WsfESA_AntennaPattern::ESA_Data::ProcessInput(), WsfESA_NX_AntennaPattern::ESA_NX_Data::ProcessInput(), WsfGENAP_AntennaPattern::GENAP_Data::ProcessInput(), WsfStandardAntennaPattern::StandardData::ProcessInput(), WsfStandardAntennaPattern::StandardData::ProcessPatternTableInput(), WsfStandardAntennaPattern::StandardData::ProcessSineInput(), WsfStandardAntennaPattern::StandardData::ProcessUniformInput(), WsfALARM_AntennaPattern::WsfALARM_AntennaPattern(), WsfAntennaPattern(), WsfESA_AntennaPattern::WsfESA_AntennaPattern(), WsfESA_AntennaPattern::WsfESA_AntennaPattern(), WsfStandardAntennaPattern::WsfStandardAntennaPattern(), WsfStandardAntennaPattern::WsfStandardAntennaPattern(), WsfALARM_AntennaPattern::ALARM_Data::~ALARM_Data(), WsfAntennaPattern::BaseData::~BaseData(), WsfElementESA_AntennaPattern::EESA_Data::~EESA_Data(), WsfESA_AntennaPattern::ESA_Data::~ESA_Data(), WsfESA_NX_AntennaPattern::ESA_NX_Data::~ESA_NX_Data(), WsfGENAP_AntennaPattern::GENAP_Data::~GENAP_Data(), WsfALARM_AntennaPatternBanded::~WsfALARM_AntennaPatternBanded(), WsfElementESA_AntennaPattern::~WsfElementESA_AntennaPattern(), and WsfESA_NX_AntennaPattern::~WsfESA_NX_AntennaPattern().

◆ WsfAntennaPattern() [2/3]

WsfAntennaPattern::WsfAntennaPattern ( BaseData * aBasePtr)

◆ ~WsfAntennaPattern()

WsfAntennaPattern::~WsfAntennaPattern ( )
override

References mSharedDataPtr.

◆ WsfAntennaPattern() [3/3]

WsfAntennaPattern::WsfAntennaPattern ( const WsfAntennaPattern & aSrc)
protected

Copy Constructor for Clone().

References mSharedDataPtr, WsfAntennaPattern(), and WsfObject::WsfObject().

Member Function Documentation

◆ ApplyEBS()

double WsfAntennaPattern::ApplyEBS ( double aBeamwidth,
double aEBS_Az,
double aEBS_El ) const
protectedvirtual

Return the electronically steered beamwidth.

Parameters
aBeamwidthThe beamwidth (radians).
aEBS_AzThe azimuth's electronic beamwidth steering (radians).
aEBS_ElThe elevation's electronic beamwidth steering (radians).
Returns
The steered beamwidth (radians)

Referenced by WsfALARM_AntennaPattern::GetAzimuthBeamwidth(), GetAzimuthBeamwidth(), WsfESA_AntennaPattern::GetAzimuthBeamwidth(), WsfStandardAntennaPattern::GetAzimuthBeamwidth(), WsfALARM_AntennaPattern::GetElevationBeamwidth(), GetElevationBeamwidth(), WsfESA_AntennaPattern::GetElevationBeamwidth(), and WsfStandardAntennaPattern::GetElevationBeamwidth().

◆ Clone()

WsfAntennaPattern * WsfAntennaPattern::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.

Reimplemented in WsfElementESA_AntennaPattern, WsfESA_AntennaPattern, WsfESA_NX_AntennaPattern, WsfGENAP_AntennaPattern, and WsfStandardAntennaPattern.

References WsfAntennaPattern().

◆ GetAzimuthBeamwidth() [1/2]

double WsfAntennaPattern::GetAzimuthBeamwidth ( double aFrequency) const
finalvirtual

Return the azimuth beamwidth at the specified frequency. The beamwidth is defined to be the width of the main lobe where the gain is 3 dB down from the peak gain.

Parameters
aFrequencyThe frequency in Hz.
Returns
The azimuth beamwidth (radians)

References GetAzimuthBeamwidth().

Referenced by WsfEM_ALARM_Clutter::ComputeClutterPower(), GetAzimuthBeamwidth(), WsfEM_XmtrRcvr::GetAzimuthBeamwidth(), WsfDisInterface::UpdateSystemFromSensor(), and WsfMilDisInterface::UpdateSystemFromWeapon().

◆ GetAzimuthBeamwidth() [2/2]

double WsfAntennaPattern::GetAzimuthBeamwidth ( double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation ) const
virtual

Return the azimuth beamwidth at the specified frequency. The beamwidth is defined to be the width of the main lobe where the gain is 3 dB down from the peak gain.

Parameters
aFrequencyThe frequency in Hz.
aEBS_AzimuthThe Electronic Beamwidth Steering in terms of Azimuth (radians)
aEBS_ElevationThe Electronic Beamwidth Steering in terms of Elevation (radians)
Returns
The azimuth beamwidth (radians)

Reimplemented in WsfALARM_AntennaPattern, WsfESA_AntennaPattern, and WsfStandardAntennaPattern.

References ApplyEBS().

◆ GetElevationBeamwidth() [1/2]

double WsfAntennaPattern::GetElevationBeamwidth ( double aFrequency) const
finalvirtual

Return the elevation beamwidth at the specified frequency. The beamwidth is defined to be the width of the main lobe where the gain is 3 dB down from the peak gain.

Parameters
aFrequencyThe frequency in Hz.
Returns
The azimuth beamwidth (radians)

References GetElevationBeamwidth().

Referenced by GetElevationBeamwidth(), WsfEM_XmtrRcvr::GetElevationBeamwidth(), WsfDisInterface::UpdateSystemFromSensor(), and WsfMilDisInterface::UpdateSystemFromWeapon().

◆ GetElevationBeamwidth() [2/2]

double WsfAntennaPattern::GetElevationBeamwidth ( double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation ) const
virtual

Return the elevation beamwidth at the specified frequency. The beamwidth is defined to be the width of the main lobe where the gain is 3 dB down from the peak gain.

Parameters
aFrequencyThe frequency in Hz.
aEBS_AzimuthThe Electronic Beamwidth Steering in terms of Azimuth (radians)
aEBS_ElevationThe Electronic Beamwidth Steering in terms of Elevation (radians)
Returns
The azimuth beamwidth (radians)

Reimplemented in WsfALARM_AntennaPattern, WsfESA_AntennaPattern, and WsfStandardAntennaPattern.

References ApplyEBS().

◆ GetGain()

double WsfAntennaPattern::GetGain ( double aFrequency,
double aTargetAz,
double aTargetEl,
double aEBS_Az,
double aEBS_El )
virtual

Return the antenna gain at a specified azimuth and elevation.

Parameters
aFrequencyThe frequency at which to get the gain (Hz).
aTargetAzTarget azimuth with respect to the gain pattern boresight (radians).
aTargetElTarget elevation with respect to the gain pattern boresight (radians).
aEBS_AzThe Electronic Beam Steering azimuth angle (radians).
aEBS_ElThe Electronic Beam Steering elevation angle (radians).
Returns
The gain multiplier (NOT in dB!)

Reimplemented in WsfALARM_AntennaPatternBanded, WsfESA_AntennaPattern, and WsfStandardAntennaPattern.

References mSharedDataPtr.

Referenced by WsfEM_XmtrRcvr::GetAntennaGain(), WsfALARM_AntennaPatternBanded::GetGain(), WsfAntennaPattern::BaseData::InitializeAverageGain(), and WsfEW_RepeaterEffect::UpdateEffects().

◆ GetGainAdjustment()

double WsfAntennaPattern::GetGainAdjustment ( ) const
virtual

Return the simple gain adjustment

Returns
the simple gain adjustment to be used if the gain adjustment table is empty.

References mSharedDataPtr.

◆ GetGainAdjustmentTable()

const WsfAntennaPattern::GainAdjustmentTable & WsfAntennaPattern::GetGainAdjustmentTable ( ) const
virtual

Return the gain adjustment table.

Returns
The gain adjustment table (which may be empty).

References mSharedDataPtr.

◆ GetGainThresholdFraction()

double WsfAntennaPattern::GetGainThresholdFraction ( double aGainThreshold,
double aPeakGain,
double aMinAz,
double aMaxAz,
double aFrequency )
virtual

Get the fraction of the antenna pattern that meets or exceeds a certain gain threshold.

This is a utility method used by the passive type sensor code to ESTIMATE the amount of a azimuth scan pattern that exceeds specified gain threshold.

Parameters
aGainThresholdThe gain threshold (absolute, not dB).
aPeakGainThe peak gain for the elevation in question (absolute, not dB). This would typically be the value returned by GetGain(freq,0.0,el,0.0,0.0).
aMinAzThe minimum azimuth to consider [ -pi, pi ]
aMaxAzThe maximum azimuth to consider [ -pi, pi ]
aFrequencyThe frequency (only needed for the steered array pattern)
Returns
The fraction of the scan pattern that meets or exceeds the gain threshold.

References mSharedDataPtr.

Referenced by WsfPassiveSensor::PassiveBeam::ComputePSOS_Effects().

◆ GetMinimumGain()

double WsfAntennaPattern::GetMinimumGain ( ) const
virtual

Return the minimum gain that will be returned by GetAntennaGain

Returns
The peak gain (as an absolute ratio, NOT dB)

References mSharedDataPtr.

Referenced by WsfEM_XmtrRcvr::GetAntennaGain(), WsfEM_XmtrRcvr::GetMinimumAntennaGain(), and WsfEW_RepeaterEffect::UpdateEffects().

◆ GetPeakGain()

double WsfAntennaPattern::GetPeakGain ( double aFrequency) const
virtual

Return the peak gain in the pattern at the specified frequency.

Parameters
aFrequencyThe frequency in Hz.
Returns
The peak gain (as an absolute ratio, NOT dB)

Reimplemented in WsfALARM_AntennaPattern, WsfESA_AntennaPattern, and WsfStandardAntennaPattern.

Referenced by WsfEM_XmtrRcvr::GetPeakAntennaGain(), and WsfEW_RepeaterEffect::UpdateEffects().

◆ GetScriptClassName()

const char * WsfAntennaPattern::GetScriptClassName ( ) const
inlineoverride

◆ Initialize()

bool WsfAntennaPattern::Initialize ( WsfSimulation * aSimulationPtr)
virtual

Initialize the antenna pattern. This is called after all the input for an antenna pattern has been processed.

Parameters
aSimulationPtrPointer to the simulation. May be null if the antenna pattern is being checked for validity before addition to the simulation.
Returns
true if successful or false if not.

Reimplemented in WsfElementESA_AntennaPattern, WsfESA_AntennaPattern, and WsfESA_NX_AntennaPattern.

References mSharedDataPtr.

Referenced by AntennaPlotFunction::Execute(), WsfElementESA_AntennaPattern::Initialize(), WsfESA_AntennaPattern::Initialize(), WsfESA_NX_AntennaPattern::Initialize(), and WsfAntennaPatternTypes::InitializeType().

◆ operator=()

WsfAntennaPattern & WsfAntennaPattern::operator= ( const WsfAntennaPattern & aRhs)
protected

References WsfAntennaPattern().

◆ ProcessInput()

bool WsfAntennaPattern::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.

Reimplemented in WsfElementESA_AntennaPattern, and WsfGENAP_AntennaPattern.

References mSharedDataPtr.

Referenced by WsfALARM_AntennaPatternBanded::ProcessInput(), WsfElementESA_AntennaPattern::ProcessInput(), and WsfGENAP_AntennaPattern::ProcessInput().

◆ SetAntennaBeamCount()

virtual void WsfAntennaPattern::SetAntennaBeamCount ( unsigned int aBeamCount)
inlinevirtual

Reimplemented in WsfESA_NX_AntennaPattern.

Member Data Documentation

◆ cTYPE_KIND

const char * WsfAntennaPattern::cTYPE_KIND = "antenna_pattern"
static

◆ mSharedDataPtr


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