WSF
WsfALARM_AntennaPattern Class Reference

#include <WsfALARM_AntennaPattern.hpp>

Inheritance diagram for WsfALARM_AntennaPattern:
Collaboration diagram for WsfALARM_AntennaPattern:

Classes

class  ALARM_Data
 Data that is shared amongst all instances of a given ALARM antenna pattern. More...

Public Types

enum  ApertureShape {
  cAS_UNKNOWN = 0 , cAS_CIRCULAR = 1 , cAS_ELLIPTICAL = 2 , cAS_RECTANGULAR = 3 ,
  cAS_SQUARE = 4
}
using Table = std::vector<double>
using TableIndex = std::vector<double>::size_type
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Public Member Functions

 WsfALARM_AntennaPattern (ALARM_Data *aBaseDataPtr)
WsfAntennaPatternClone () const override
double GetAzimuthBeamwidth (double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override
double GetElevationBeamwidth (double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override
double GetPeakGain (double aFrequency) const override
Public Member Functions inherited from WsfAntennaPattern
 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 WSF_DEPRECATED double GetElevationBeamwidth (double aFrequency) const final
virtual double GetMinimumGain () 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 Member Functions

static WsfAntennaPatternObjectFactory (const std::string &aTypeName)

Private data access.

These methods return data that should not be considered part of the public interface. They were provided to support External Services. Use at your own risk!

virtual const std::vector< double > & GetAzAngles () const
virtual const std::vector< double > & GetAzGains () const
virtual const std::vector< double > & GetElAngles () const
virtual const std::vector< double > & GetElGains () const
virtual ApertureShape GetApertureShape () const
virtual double GetMinGain () const
virtual double GetGainCorrection () const
virtual double GetInputAzimuthBeamwidth () const
virtual double GetInputElevationBeamwidth () const
ALARM_DataAlarmData () const
 WsfALARM_AntennaPattern (const WsfALARM_AntennaPattern &aSrc)=default
WsfALARM_AntennaPattern operator= (const WsfALARM_AntennaPattern &aRhs) const =delete

Additional Inherited Members

Static Public Attributes inherited from WsfAntennaPattern
static const char * cTYPE_KIND = "antenna_pattern"
Protected Member Functions inherited from WsfAntennaPattern
 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 inherited from WsfAntennaPattern
BaseDatamSharedDataPtr

Detailed Description

A class that represents an ALARM or SUPPRESSOR ANTGR external antenna pattern. This class provide the capability to read and interrogate an ALARM antenna patterns or SUPPRESSOR ANTGR patterns.

Note
At the current time this class supports only the processing of 2D files. It does not support the 3D or illumination formats.
SUPPRESSOR supports the concept of an 'aperture type' or 'shape' that controls how interpolation is performed. This class will support the 'shape' if it is present.
The routines in this class were primarily adapted from SUPPRESSOR 6.0. The ALARM routine antenna_pattern::gain_lookup appeared to be very similar to the SUPPRESSOR elliptical case, but was different. For now we are taking the SUPPRESSOR approach because that is what we want to match...
This class is used as a base class by WsfGENAP_AntennaPattern. It generates the pattern rather than reading it in from a file. Other than that it uses the same methods for determine off-axis gains from the data.

Member Typedef Documentation

◆ Table

using WsfALARM_AntennaPattern::Table = std::vector<double>

◆ TableIndex

using WsfALARM_AntennaPattern::TableIndex = std::vector<double>::size_type

Member Enumeration Documentation

◆ ApertureShape

Aperture shape.

Note
: The values MUST be as defined because they correspond to the values passed to the SUPPRESSOR routine GENAP.
Enumerator
cAS_UNKNOWN 
cAS_CIRCULAR 
cAS_ELLIPTICAL 
cAS_RECTANGULAR 
cAS_SQUARE 

Constructor & Destructor Documentation

◆ WsfALARM_AntennaPattern() [1/2]

◆ WsfALARM_AntennaPattern() [2/2]

WsfALARM_AntennaPattern::WsfALARM_AntennaPattern ( const WsfALARM_AntennaPattern & aSrc)
protecteddefault

Member Function Documentation

◆ AlarmData()

◆ Clone()

WsfAntennaPattern * WsfALARM_AntennaPattern::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 WsfALARM_AntennaPatternBanded, and WsfGENAP_AntennaPattern.

References WsfALARM_AntennaPattern(), and WsfAntennaPattern::WsfAntennaPattern().

◆ GetApertureShape()

virtual ApertureShape WsfALARM_AntennaPattern::GetApertureShape ( ) const
inlinevirtual

◆ GetAzAngles()

virtual const std::vector< double > & WsfALARM_AntennaPattern::GetAzAngles ( ) const
inlinevirtual

◆ GetAzGains()

virtual const std::vector< double > & WsfALARM_AntennaPattern::GetAzGains ( ) const
inlinevirtual

◆ GetAzimuthBeamwidth()

double WsfALARM_AntennaPattern::GetAzimuthBeamwidth ( double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation ) const
overridevirtual

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 from WsfAntennaPattern.

References AlarmData(), and WsfAntennaPattern::ApplyEBS().

◆ GetElAngles()

virtual const std::vector< double > & WsfALARM_AntennaPattern::GetElAngles ( ) const
inlinevirtual

◆ GetElevationBeamwidth()

double WsfALARM_AntennaPattern::GetElevationBeamwidth ( double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation ) const
overridevirtual

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 from WsfAntennaPattern.

References AlarmData(), and WsfAntennaPattern::ApplyEBS().

◆ GetElGains()

virtual const std::vector< double > & WsfALARM_AntennaPattern::GetElGains ( ) const
inlinevirtual

◆ GetGainCorrection()

virtual double WsfALARM_AntennaPattern::GetGainCorrection ( ) const
inlinevirtual

◆ GetInputAzimuthBeamwidth()

virtual double WsfALARM_AntennaPattern::GetInputAzimuthBeamwidth ( ) const
inlinevirtual

◆ GetInputElevationBeamwidth()

virtual double WsfALARM_AntennaPattern::GetInputElevationBeamwidth ( ) const
inlinevirtual

◆ GetMinGain()

virtual double WsfALARM_AntennaPattern::GetMinGain ( ) const
inlinevirtual

◆ GetPeakGain()

double WsfALARM_AntennaPattern::GetPeakGain ( double aFrequency) const
overridevirtual

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 from WsfAntennaPattern.

References AlarmData(), and WsfAntennaPattern::BaseData::PerformGainAdjustment().

◆ ObjectFactory()

WsfAntennaPattern * WsfALARM_AntennaPattern::ObjectFactory ( const std::string & aTypeName)
static

Factory method for WsfAntennaPatternTypes. This is called by WsfAntennaPatternTypes::LoadType to determine if a pattern represented by this class is being requested.

References WsfALARM_AntennaPattern(), and WsfAntennaPattern::WsfAntennaPattern().

◆ operator=()

WsfALARM_AntennaPattern WsfALARM_AntennaPattern::operator= ( const WsfALARM_AntennaPattern & aRhs) const
protecteddelete

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