WSF
WsfStandardAntennaPattern.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSTANDARDANTENNAPATTERN_HPP
13#define WSFSTANDARDANTENNAPATTERN_HPP
14
15#include "wsf_export.h"
16
17#include <memory>
18
19class UtAzElTable;
20#include "WsfAntennaPattern.hpp"
21
30
32{
33public:
43
45 {
46 public:
48 ~StandardData() override;
49
50 bool ProcessInput(WsfAntennaPattern& aPattern, UtInput& aInput) override;
51 bool Initialize(WsfAntennaPattern& aAntennaPattern) override;
52
53 double GetGain(double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El) override;
54
55 void ResetPatternType();
56
57 static double BesselJ1(double aX);
58
60 UtAzElTable* mTablePtr;
61
62 double mPeakGain;
67
69
73
75
80
82
85 double mCscK_Az;
86 double mCscK_El;
90
92
93
94 protected:
95 static double CircularPattern(double aAzimuth, double aElevation, double aPeakGain, double aBeamwidth);
96
97 double CosecantSquaredPattern(double aAzimuth, double aElevation);
98
99 static double SinePattern(double aAzimuth,
100 double aElevation,
101 double aPeakGain,
102 double aAzimuthBeamwidth,
103 double aElevationBeamwidth,
104 double aOffset,
105 double aFact,
106 int aType);
107
108 void ProcessCircularInput(WsfAntennaPattern& aPattern, UtInput& aInput);
109 void ProcessCosecantSquaredInput(WsfAntennaPattern& aPattern, UtInput& aInput);
110 void ProcessPatternTableInput(WsfAntennaPattern& aPattern, UtInput& aInput);
111 void ProcessSineInput(WsfAntennaPattern& aPattern, UtInput& aInput);
112 void ProcessUniformInput(WsfAntennaPattern& aPattern, UtInput& aInput);
113 };
114
118
119 WsfAntennaPattern* Clone() const override;
120
121 double GetGain(double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El) override;
122
123 double GetAzimuthBeamwidth(double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override;
124 double GetElevationBeamwidth(double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override;
125 double GetPeakGain(double aFrequency) const override;
126
131
132 double GetSineAngleModificationFactor() const { return GetStandardData()->mSineAngleModificationFactor; }
133 int GetSineFunctionType() const { return GetStandardData()->mSineFunctionType; }
134 int GetStandardPatternType() const { return GetStandardData()->mPatternType; }
135 UtAzElTable* GetUtAzElTable() const { return GetStandardData()->mTablePtr; }
136 double GetCscMinElForPeakGain() const { return GetStandardData()->mCscMinElForPeakGain; }
137 double GetCscElOfPeakCsc2Boundary() const { return GetStandardData()->mCscElOfPeakCsc2Boundary; }
138 double GetCscMaxElForCsc2() const { return GetStandardData()->mCscMaxElForCsc2; }
139 virtual double GetInputAzimuthBeamwidth() const { return GetStandardData()->mInputAzBeamwidth; }
140 virtual double GetInputElevationBeamwidth() const { return GetStandardData()->mInputElBeamwidth; }
141 StandardData* GetStandardData() const { return static_cast<StandardData*>(mSharedDataPtr); }
143
144protected:
146
147private:
149 // StandardData* mStandardDataPtr;
150};
151
152#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfAntennaPattern.hpp:47
WsfAntennaPattern * Clone() const override
Definition WsfAntennaPattern.cpp:57
BaseData * mSharedDataPtr
Definition WsfAntennaPattern.hpp:123
WsfAntennaPattern()
Definition WsfAntennaPattern.cpp:25
virtual WSF_DEPRECATED double GetElevationBeamwidth(double aFrequency) const final
Definition WsfAntennaPattern.cpp:139
virtual double GetGain(double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El)
Definition WsfAntennaPattern.cpp:72
virtual double GetPeakGain(double aFrequency) const
Definition WsfAntennaPattern.cpp:172
virtual WSF_DEPRECATED double GetAzimuthBeamwidth(double aFrequency) const final
Definition WsfAntennaPattern.cpp:113
Definition WsfStandardAntennaPattern.hpp:45
double mInputElBeamwidth
Definition WsfStandardAntennaPattern.hpp:64
double mSineAngleModificationFactor
Definition WsfStandardAntennaPattern.hpp:70
static double SinePattern(double aAzimuth, double aElevation, double aPeakGain, double aAzimuthBeamwidth, double aElevationBeamwidth, double aOffset, double aFact, int aType)
From the routine GENANT.
Definition WsfStandardAntennaPattern.cpp:681
double mCscWithinCsc2Factor
Definition WsfStandardAntennaPattern.hpp:87
double CosecantSquaredPattern(double aAzimuth, double aElevation)
Definition WsfStandardAntennaPattern.cpp:579
double mAzBeamwidth
Definition WsfStandardAntennaPattern.hpp:65
void ResetPatternType()
Definition WsfStandardAntennaPattern.cpp:535
void ProcessUniformInput(WsfAntennaPattern &aPattern, UtInput &aInput)
Definition WsfStandardAntennaPattern.cpp:490
double mCscMaxElForCsc2
Definition WsfStandardAntennaPattern.hpp:78
double mCscMinElForPeakGain
Definition WsfStandardAntennaPattern.hpp:76
double mCscElOfPeakCsc2Boundary
Definition WsfStandardAntennaPattern.hpp:77
bool mFirstTime
Definition WsfStandardAntennaPattern.hpp:91
static double CircularPattern(double aAzimuth, double aElevation, double aPeakGain, double aBeamwidth)
Definition WsfStandardAntennaPattern.cpp:656
double mCscPeakGainAdjusted
Definition WsfStandardAntennaPattern.hpp:84
double mCscAboveCsc2Factor
Definition WsfStandardAntennaPattern.hpp:88
double mCscMinimumGainAdjusted
Definition WsfStandardAntennaPattern.hpp:83
StandardData()
Definition WsfStandardAntennaPattern.cpp:73
double mInputAzBeamwidth
Definition WsfStandardAntennaPattern.hpp:63
double mElBeamwidth
Definition WsfStandardAntennaPattern.hpp:66
bool Initialize(WsfAntennaPattern &aAntennaPattern) override
Definition WsfStandardAntennaPattern.cpp:176
void ProcessPatternTableInput(WsfAntennaPattern &aPattern, UtInput &aInput)
Definition WsfStandardAntennaPattern.cpp:351
void ProcessSineInput(WsfAntennaPattern &aPattern, UtInput &aInput)
Definition WsfStandardAntennaPattern.cpp:432
int mSineFunctionType
Definition WsfStandardAntennaPattern.hpp:71
double mCscK_El
Definition WsfStandardAntennaPattern.hpp:86
UtAzElTable * mTablePtr
Definition WsfStandardAntennaPattern.hpp:60
PatternType mPatternType
Definition WsfStandardAntennaPattern.hpp:59
void ProcessCircularInput(WsfAntennaPattern &aPattern, UtInput &aInput)
Definition WsfStandardAntennaPattern.cpp:234
double GetGain(double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_El) override
Definition WsfStandardAntennaPattern.cpp:182
bool ProcessInput(WsfAntennaPattern &aPattern, UtInput &aInput) override
Definition WsfStandardAntennaPattern.cpp:102
static double BesselJ1(double aX)
Calculate Bessel function J1(x).
Definition WsfStandardAntennaPattern.cpp:545
double mPeakGain
Definition WsfStandardAntennaPattern.hpp:62
void ProcessCosecantSquaredInput(WsfAntennaPattern &aPattern, UtInput &aInput)
Definition WsfStandardAntennaPattern.cpp:267
double mCscK_Az
Definition WsfStandardAntennaPattern.hpp:85
Definition WsfStandardAntennaPattern.hpp:32
WsfStandardAntennaPattern & operator=(const WsfStandardAntennaPattern &aRhs)=delete
PatternType
Definition WsfStandardAntennaPattern.hpp:35
@ cUNKNOWN
Definition WsfStandardAntennaPattern.hpp:36
@ cTABLE
Definition WsfStandardAntennaPattern.hpp:37
@ cUNIFORM_PATTERN
Definition WsfStandardAntennaPattern.hpp:41
@ cSINE_PATTERN
Definition WsfStandardAntennaPattern.hpp:40
@ cCIRCULAR_PATTERN
Definition WsfStandardAntennaPattern.hpp:38
@ cCOSECANT_SQUARED_PATTERN
Definition WsfStandardAntennaPattern.hpp:39
UtAzElTable * GetUtAzElTable() const
Definition WsfStandardAntennaPattern.hpp:135
WsfStandardAntennaPattern()
Definition WsfStandardAntennaPattern.cpp:26
double GetCscElOfPeakCsc2Boundary() const
Definition WsfStandardAntennaPattern.hpp:137
virtual double GetInputAzimuthBeamwidth() const
Definition WsfStandardAntennaPattern.hpp:139
StandardData * GetStandardData() const
Definition WsfStandardAntennaPattern.hpp:141
int GetStandardPatternType() const
Definition WsfStandardAntennaPattern.hpp:134
int GetSineFunctionType() const
Definition WsfStandardAntennaPattern.hpp:133
double GetCscMaxElForCsc2() const
Definition WsfStandardAntennaPattern.hpp:138
virtual double GetInputElevationBeamwidth() const
Definition WsfStandardAntennaPattern.hpp:140
double GetSineAngleModificationFactor() const
Definition WsfStandardAntennaPattern.hpp:132
double GetCscMinElForPeakGain() const
Definition WsfStandardAntennaPattern.hpp:136
Copyrights Multiple, All Rights Reserved