WSF
WsfEM_Attenuation.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 WSFEM_ATTENUATION_HPP
13#define WSFEM_ATTENUATION_HPP
14
15#include "wsf_export.h"
16
17class UtInput;
18#include "WsfEM_Interaction.hpp"
19class WsfEM_Xmtr;
20class WsfEM_XmtrRcvr;
21class WsfEnvironment;
22#include "WsfObject.hpp"
23class WsfScenario;
24
28{
29public:
31 ~WsfEM_Attenuation() override;
32
33 WsfEM_Attenuation* Clone() const override = 0;
34
35 virtual bool Initialize(WsfEM_XmtrRcvr* aXmtrRcvrPtr);
36
37 virtual bool Initialize(WsfEM_Xmtr* aXmtrPtr);
38
39 bool ProcessInput(UtInput& aInput) override;
40
41 const char* GetScriptClassName() const override { return "WsfEM_Attenuation"; }
42
44 bool DebugEnabled() const { return mDebugEnabled; }
45
49 virtual bool IsNullModel() const { return false; }
50
61 virtual bool AcceptsInlineBlockInput() const { return false; }
62
63 virtual double ComputeAttenuationFactor(WsfEM_Interaction& aInteraction,
64 WsfEnvironment& aEnvironment,
66
67protected:
69
70 virtual double ComputeAttenuationFactorP(double aRange, double aElevation, double aAltitude, double aFrequency);
71
72 void GetAltitudesAndGroundRange(WsfEM_Interaction& aInteraction,
74 double& aAltitude1,
75 double& aAltitude2,
76 double& aGroundRange);
77
78 void GetRangeElevationAltitude(WsfEM_Interaction& aInteraction,
80 double& aRange,
81 double& aElevation,
82 double& aAltitude);
83
85
90
91private:
93 WsfEM_Attenuation& operator=(const WsfEM_Attenuation& aRhs) = delete;
94
95 double GetGroundRange(const double aLocWCS_1[3], const double aLocWCS_2[3]) const;
96
97 void GetRangeElevationAltitude(WsfPlatform* aSrcPlatformPtr,
98 WsfPlatform* aTgtPlatformPtr,
100 const WsfEM_Interaction::LocationData& aTgtLoc,
101 const WsfEM_Interaction::RelativeData& aSrcToTgt,
102 const WsfEM_Interaction::RelativeData& aTgtToSrc,
103 double& aRange,
104 double& aElevation,
105 double& aAltitude);
106
107 static WsfEM_Attenuation* CreateInstance(const std::string& aTypeName);
108};
109
110#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfEM_Attenuation.hpp:28
virtual bool AcceptsInlineBlockInput() const
Definition WsfEM_Attenuation.hpp:61
bool mDebugEnabled
Definition WsfEM_Attenuation.hpp:84
WsfEM_Attenuation()
Definition WsfEM_Attenuation.cpp:25
virtual bool Initialize(WsfEM_XmtrRcvr *aXmtrRcvrPtr)
Definition WsfEM_Attenuation.cpp:48
const char * GetScriptClassName() const override
Definition WsfEM_Attenuation.hpp:41
virtual bool IsNullModel() const
Definition WsfEM_Attenuation.hpp:49
void GetRangeElevationAltitude(WsfEM_Interaction &aInteraction, WsfEM_Interaction::Geometry aGeometry, double &aRange, double &aElevation, double &aAltitude)
Definition WsfEM_Attenuation.cpp:214
bool mSortEndPoints
Definition WsfEM_Attenuation.hpp:89
WsfEM_Attenuation * Clone() const override=0
bool DebugEnabled() const
Is 'debug' enabled?
Definition WsfEM_Attenuation.hpp:44
Definition WsfEM_Interaction.hpp:68
Geometry
Definition WsfEM_Interaction.hpp:93
Definition WsfEM_XmtrRcvr.hpp:42
Definition WsfEM_Xmtr.hpp:55
Definition WsfEnvironment.hpp:37
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
WsfObject & operator=(const WsfObject &aRhs)
Assignment operator.
Definition WsfObject.cpp:258
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Represents the location of a platform or device.
Definition WsfEM_Interaction.hpp:101
Definition WsfEM_Interaction.hpp:116
Copyrights Multiple, All Rights Reserved