WSF
WsfEW_CoverPulseEffect.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 WSFEW_COVERPULSEEFFECT_HPP
13#define WSFEW_COVERPULSEEFFECT_HPP
14
15#include "wsf_mil_export.h"
16
17#include <map>
18
19class UtInput;
20#include "UtMath.hpp"
21
22class WsfEW_EA;
23class WsfEW_EP;
24#include "WsfEM_Interaction.hpp"
25#include "WsfEW_PulseEffect.hpp"
26#include "WsfEW_Types.hpp"
27
28
30
31class WSF_MIL_EXPORT WsfEW_CoverPulseEffect : public WsfEW_PulseEffect
32{
33public:
36 ~WsfEW_CoverPulseEffect() override = default;
37 WsfEW_Effect* Clone() const override;
38 bool Initialize(WsfSimulation& aSimulation) override;
39 bool ProcessInput(UtInput& aInput) override;
40
41 void ApplyUnmitigatedEffect(WsfEW_Effects& aEW_Effects) const override;
42
43 void ApplyMitigatedEffect(WsfEW_Effect* aEW_EffectPtr, WsfEW_Effects& aEW_Effects) const override;
44
45 void UpdateEffects(double aSimTime,
46 const WsfEM_Interaction& aTargetInteraction,
47 const WsfEM_Interaction& aJammerToTgtInteraction,
48 const ut::optional<WsfEM_Interaction>& aTgtToJammerInteraction,
49 WsfEW_Effects& aEW_Effects,
50 WsfEW_Effect* aEW_EffectPtr = nullptr) override;
51
52 void UpdateJammerPulseDensity(WsfEM_Xmtr* aJammerXmtrPtr, WsfEM_Xmtr* aRadarXmtrPtr) override;
53
54protected:
55 class WSF_MIL_EXPORT CoverPulseData : public WsfEW_PulseEffect::PulseData
56 {
57 public:
60 ~CoverPulseData() override = default;
61
62 bool ProcessInput(UtInput& aInput) override;
63 bool Initialize(WsfSimulation& aSimulation) override;
64
65 EW_EffectData* Clone() const override;
66
67 void Reset() override;
68
71
72 protected:
73 CoverPulseData(const CoverPulseData& aSrc) = default;
74 };
75
77
79
80 double GetCoverProbability(WsfStringId aSystemTypeId) const;
81 double GetRequiredJtoS(WsfStringId aSystemTypeId) const;
82
83 EffectData* NewEffectData() override;
84 EffectData* PropagateEffectDataPtr(WsfStringId aSystemTypeId) override;
86
87private:
88 using CoverPulseDataMap = std::map<WsfStringId, CoverPulseData*>;
89 CoverPulseDataMap mCoverPulseDataMap;
90
91 double mCoverProbability;
92 double mJammingPowerFactor;
93};
94
95#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfEM_Interaction.hpp:68
Definition WsfEM_Xmtr.hpp:55
double mRequiredJtoS
Required J/S for the effect to be applied.
Definition WsfEW_CoverPulseEffect.hpp:70
double mCoverProbability
Probability of the effect being applied.
Definition WsfEW_CoverPulseEffect.hpp:69
void Reset() override
Definition WsfEW_CoverPulseEffect.cpp:293
CoverPulseData(const CoverPulseData &aSrc)=default
CoverPulseData()
Definition WsfEW_CoverPulseEffect.cpp:249
CoverPulseData & operator=(const CoverPulseData &)=delete
WsfEW_CoverPulseEffect & operator=(const WsfEW_CoverPulseEffect &)=delete
WsfEW_CoverPulseEffect()
Definition WsfEW_CoverPulseEffect.cpp:31
~WsfEW_CoverPulseEffect() override=default
double GetRequiredJtoS(WsfStringId aSystemTypeId) const
Definition WsfEW_CoverPulseEffect.cpp:238
double GetCoverProbability(WsfStringId aSystemTypeId) const
Definition WsfEW_CoverPulseEffect.cpp:228
Definition WsfEW_EA.hpp:37
Definition WsfEW_EP.hpp:36
Base effect data used to derive from in inheriting effect classes.
Definition WsfEW_Effect.hpp:317
Definition WsfEW_Effect.hpp:45
Definition WsfEW_Effects.hpp:41
void ApplyUnmitigatedEffect(WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:72
void ApplyMitigatedEffect(WsfEW_Effect *aEW_EffectPtr, WsfEW_Effects &aEW_Effects) const override
Definition WsfEW_PowerEffect.cpp:233
Definition WsfEW_PulseEffect.hpp:75
EffectData * PropagateEffectDataPtr(WsfStringId aSystemTypeId) override
Definition WsfEW_PulseEffect.cpp:104
EffectData * NewEffectData() override
Definition WsfEW_PulseEffect.hpp:104
WsfEW_Effect * Clone() const override
Definition WsfEW_PulseEffect.cpp:42
virtual void UpdateJammerPulseDensity(WsfEM_Xmtr *aJammerXmtrPtr, WsfEM_Xmtr *aRadarXmtrPtr)
Definition WsfEW_PulseEffect.cpp:111
WsfEW_PulseEffect()
Definition WsfEW_PulseEffect.cpp:24
bool Initialize(WsfSimulation &aSimulation) override
Definition WsfEW_PulseEffect.cpp:48
void UpdateEffects(double aSimTime, const WsfEM_Interaction &aTargetInteraction, const WsfEM_Interaction &aJammerToTgtInteraction, const ut::optional< WsfEM_Interaction > &aTgtToJammerInteraction, WsfEW_Effects &aEW_Effects, WsfEW_Effect *aEW_EffectPtr=nullptr) override
Definition WsfEW_PulseEffect.cpp:67
bool ProcessInput(UtInput &aInput) override
Definition WsfEW_PulseEffect.cpp:61
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved