WSF
WsfEM_SurfaceClutter.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_SURFACECLUTTER_HPP
13#define WSFEM_SURFACECLUTTER_HPP
14
15#include "wsf_mil_export.h"
16
17#include "WsfEM_Clutter.hpp"
18class WsfEM_Rcvr;
19class WsfEM_Xmtr;
20
22class WSF_MIL_EXPORT WsfEM_SurfaceClutter : public WsfEM_Clutter
23{
24public:
27 ~WsfEM_SurfaceClutter() override = default;
28
29 static WsfEM_Clutter* ObjectFactory(const std::string& aTypeName);
30
31 WsfEM_Clutter* Clone() const override;
32
33 bool Initialize(WsfEM_Rcvr* aRcvrPtr) override;
34
35 bool ProcessInput(UtInput& aInput) override;
36
37 double ComputeClutterPower(WsfEM_Interaction& aInteraction, WsfEnvironment& aEnvironment, double aProcessingFactor) override;
38
39protected:
41
42private:
43 double ContinuousWaveClutter(WsfEM_Interaction& aInteraction, WsfEnvironment& aEnvironment);
44
45 double PulseDopplerClutter(WsfEM_Interaction& aInteraction, WsfEnvironment& aEnvironment);
46
47 void ComputeGeometry(WsfEM_Interaction& aInteraction,
48 WsfEnvironment& aEnvironment,
49 double aViewVecNED[2],
50 double& aAdjustedAntennaHeight,
51 double& aAdjustedEarthRadius,
52 double& aClutterHorizon,
53 double& aDepressionAngle);
54
55 double ComputeRF_TwoWayPower(WsfEM_Interaction& aInteraction,
56 const double aViewVecNED[2],
57 double aDepressionAngle,
58 double aSlantRange,
59 double aCrossSection);
60
61 double mMinimumRange;
62 double mMaximumRange;
63 double mContinuousWaveClutterPower;
64 bool mUseSALRAM_DataTables;
65};
66
67#endif
WsfEM_Clutter * Clone() const override=0
virtual bool Initialize(WsfEM_Rcvr *aRcvrPtr)
Definition WsfEM_Clutter.cpp:46
WsfEM_Clutter()
Constructor.
Definition WsfEM_Clutter.cpp:18
bool ProcessInput(UtInput &aInput) override
Definition WsfEM_Clutter.cpp:53
virtual double ComputeClutterPower(WsfEM_Interaction &aInteraction, WsfEnvironment &aEnvironment, double aProcessingFactor)=0
Definition WsfEM_Interaction.hpp:68
Definition WsfEM_Rcvr.hpp:68
static WsfEM_Clutter * ObjectFactory(const std::string &aTypeName)
Factory method called by WsfEM_ClutterTypes.
Definition WsfEM_SurfaceClutter.cpp:51
~WsfEM_SurfaceClutter() override=default
WsfEM_SurfaceClutter(const WsfEM_SurfaceClutter &aSrc)=default
WsfEM_SurfaceClutter & operator=(const WsfEM_SurfaceClutter &)=delete
WsfEM_SurfaceClutter()
Definition WsfEM_SurfaceClutter.cpp:39
Definition WsfEM_Xmtr.hpp:55
Definition WsfEnvironment.hpp:37
Copyrights Multiple, All Rights Reserved