12#ifndef WSFANTENNAPATTERN_HPP
13#define WSFANTENNAPATTERN_HPP
15#include "wsf_export.h"
20#include "TblLookup.hpp"
22#include "UtReferenceTracked.hpp"
56 virtual double GetGain(
double aFrequency,
double aTargetAz,
double aTargetEl,
double aEBS_Az,
double aEBS_El);
94 virtual double GetGain(
double aFrequency,
double aTargetAz,
double aTargetEl,
double aEBS_Az,
double aEBS_El);
96 WSF_DEPRECATED
virtual double GetAzimuthBeamwidth(
double aFrequency)
const final;
97 virtual double GetAzimuthBeamwidth(
double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation)
const;
98 WSF_DEPRECATED
virtual double GetElevationBeamwidth(
double aFrequency)
const final;
99 virtual double GetElevationBeamwidth(
double aFrequency,
double aEBS_Azimuth,
double aEBS_Elevation)
const;
101 virtual double GetMinimumGain()
const;
102 virtual double GetPeakGain(
double aFrequency)
const;
103 virtual const GainAdjustmentTable& GetGainAdjustmentTable()
const;
104 virtual double GetGainAdjustment()
const;
111 GetGainThresholdFraction(
double aGainThreshold,
double aPeakGain,
double aMinAz,
double aMaxAz,
double aFrequency);
125 virtual double ApplyEBS(
double aBeamwidth,
double aEBS_Az,
double aEBS_El)
const;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfAntennaPattern.hpp:47
virtual void InitializeAverageGain(double aFrequency)
Initialize the average gain table if not already initialized.
Definition WsfAntennaPattern.cpp:401
double mGainAdjustment
A simple gain adjustment.
Definition WsfAntennaPattern.hpp:66
double mMinimumGain
The minimum gain that should be returned by any antenna pattern.
Definition WsfAntennaPattern.hpp:63
~BaseData() override=default
GainAdjustmentTable mGainAdjustmentTable
Frequency-dependent gain adjustment table.
Definition WsfAntennaPattern.hpp:69
virtual double GetGain(double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El)
Definition WsfAntennaPattern.cpp:376
bool mInitialized
Definition WsfAntennaPattern.hpp:73
std::vector< double > mAvgGain
Definition WsfAntennaPattern.hpp:80
bool mAvgGainInitialized
Definition WsfAntennaPattern.hpp:77
double mSampledPeakGain
The peak gain of the sample. This SHOULD be the peak gain of the pattern.
Definition WsfAntennaPattern.hpp:82
std::recursive_mutex mAvgGainMutex
Definition WsfAntennaPattern.hpp:79
bool mShowAvgGain
Definition WsfAntennaPattern.hpp:78
virtual double PerformGainAdjustment(double aFrequency, double aGain)
Definition WsfAntennaPattern.cpp:384
BaseData()
Definition WsfAntennaPattern.cpp:286
BaseData(const BaseData &aSrc)=default
virtual bool Initialize(WsfAntennaPattern &aAntennaPattern)
Definition WsfAntennaPattern.cpp:364
Definition WsfAntennaPattern.hpp:40
TblDepVar1< double > mAdjustment
Definition WsfAntennaPattern.hpp:43
TblIndVarU< double > mFrequency
Definition WsfAntennaPattern.hpp:42
Definition WsfAntennaPattern.hpp:35
const char * GetScriptClassName() const override
Definition WsfAntennaPattern.hpp:92
BaseData * mSharedDataPtr
Definition WsfAntennaPattern.hpp:123
WsfAntennaPattern()
Definition WsfAntennaPattern.cpp:25
virtual double ApplyEBS(double aBeamwidth, double aEBS_Az, double aEBS_El) const
Definition WsfAntennaPattern.cpp:84
static const char * cTYPE_KIND
Definition WsfAntennaPattern.hpp:37
virtual void SetAntennaBeamCount(unsigned int aBeamCount)
Definition WsfAntennaPattern.hpp:113
WsfAntennaPattern & operator=(const WsfAntennaPattern &aRhs)
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
The main controller for a simulation.
Definition WsfSimulation.hpp:109