WSF
WsfEW_FalseTargetEffect.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_FALSETARGETEFFECT_HPP
13#define WSFEW_FALSETARGETEFFECT_HPP
14
15#include "wsf_mil_export.h"
16
17#include <iosfwd>
18
19class UtInput;
20
21#include "WsfEM_Interaction.hpp"
22class WsfEM_Xmtr;
23#include "WsfEW_Effect.hpp"
24#include "WsfEW_PulseEffect.hpp"
25class WsfFalseTarget;
26
28
29class WSF_MIL_EXPORT WsfEW_FalseTargetEffect : public WsfEW_PulseEffect
30{
31public:
34 ~WsfEW_FalseTargetEffect() override = default;
35
36 WsfEW_Effect* Clone() const override;
37 bool Initialize(WsfSimulation& aSimulation) override;
38 bool ProcessInput(UtInput& aInput) override;
39
40 void ApplyUnmitigatedEffect(WsfEW_Effects& aEW_Effects) const override;
41
42 void ApplyMitigatedEffect(WsfEW_Effect* aEW_EffectPtr, WsfEW_Effects& aEW_Effects) const override;
43
44 void UpdateJammerPulseDensity(WsfEM_Xmtr* aJammerXmtrPtr, WsfEM_Xmtr* aRadarXmtrPtr) override;
45
46 virtual bool InitializeFT(const WsfEM_Rcvr& aRadarRcvr, const WsfEM_Xmtr& aRadarXmtr);
47 virtual bool UpdateFT(const WsfEM_Rcvr& aRadarRcvr, const WsfEM_Xmtr& aRadarXmtr);
48
50
51
52 WsfFalseTarget* GetFT_Ptr(WsfStringId aSystemTypeId);
53
54 // Override to reset the mExplicitnumberOfFTS flag.
55 void SetJammerPulseDensity(WsfStringId aSystemTypeId, double aJammerPulseDensity, bool aIsExplicit = false) override;
57
58protected:
59 class WSF_MIL_EXPORT FT_Data : public WsfEW_PulseEffect::PulseData
60 {
61 public:
62 FT_Data();
63 FT_Data& operator=(const FT_Data&) = delete;
64 ~FT_Data() override;
65
66 bool ProcessInput(UtInput& aInput) override;
67 bool Initialize(WsfSimulation& aSimulation) override;
68
69 EW_EffectData* Clone() const override;
70
71 void Reset() override;
72
73 WsfFalseTarget* GetFT_Ptr() const { return mFT_Ptr; }
74 void SetFT_Ptr(WsfFalseTarget* aFT_Ptr, bool aDT_IsCopy);
75
78 unsigned int mNumberOfFTs;
83 double mBlipSpeeds[2];
84
85 protected:
86 FT_Data(const FT_Data& aSrc);
87
88 private:
89 bool mFT_IsCopy;
90 WsfFalseTarget* mFT_Ptr;
91 };
92
94
96
97 double GetScanRateMultiplier(WsfStringId aSystemTypeId) const;
98 bool GetAutoGenFTs(WsfStringId aSystemTypeId) const;
99 bool ExplicitRangeConstraint(WsfStringId aSystemTypeId) const;
100 bool GetRangeConstrained(WsfStringId aSystemTypeId) const;
101 double GetMinBlipSpeed(WsfStringId aSystemTypeId) const;
102 double GetMaxBlipSpeed(WsfStringId aSystemTypeId) const;
103 unsigned int GetNumberOfFTs(WsfStringId aSystemTypeId) const;
104 bool ExplicitNumberOfFTs(WsfStringId aSystemTypeId) const;
105
106 EffectData* NewEffectData() override { return new FT_Data(); }
107 EffectData* PropagateEffectDataPtr(WsfStringId aSystemTypeId) override;
109
110private:
111 using FT_DataMap =
112 std::map<WsfStringId, FT_Data*>;
113
114 FT_DataMap mFT_DataMap;
115};
116
117#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
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
Definition WsfEW_FalseTargetEffect.hpp:60
bool mExplicitNumberOfFTs
Definition WsfEW_FalseTargetEffect.hpp:79
double mScanRateMultiplier
Definition WsfEW_FalseTargetEffect.hpp:82
void Reset() override
Definition WsfEW_FalseTargetEffect.cpp:657
WsfStringId mFT_NameId
Name of the false target object.
Definition WsfEW_FalseTargetEffect.hpp:77
bool mAutoGenFTs
Definition WsfEW_FalseTargetEffect.hpp:76
FT_Data()
Definition WsfEW_FalseTargetEffect.cpp:431
double mBlipSpeeds[2]
Definition WsfEW_FalseTargetEffect.hpp:83
FT_Data & operator=(const FT_Data &)=delete
WsfFalseTarget * GetFT_Ptr() const
Definition WsfEW_FalseTargetEffect.hpp:73
unsigned int mNumberOfFTs
Maximum number of false targets to be injected.
Definition WsfEW_FalseTargetEffect.hpp:78
bool mRangeConstrained
Definition WsfEW_FalseTargetEffect.hpp:80
bool mExplicitRangeConstraint
Definition WsfEW_FalseTargetEffect.hpp:81
WsfEW_FalseTargetEffect & operator=(const WsfEW_FalseTargetEffect &)=delete
bool GetRangeConstrained(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:379
WsfFalseTarget * GetFT_Ptr(WsfStringId aSystemTypeId)
Definition WsfEW_FalseTargetEffect.cpp:340
EffectData * NewEffectData() override
Definition WsfEW_FalseTargetEffect.hpp:106
virtual bool UpdateFT(const WsfEM_Rcvr &aRadarRcvr, const WsfEM_Xmtr &aRadarXmtr)
Definition WsfEW_FalseTargetEffect.cpp:108
bool ExplicitNumberOfFTs(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:419
unsigned int GetNumberOfFTs(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:409
bool ExplicitRangeConstraint(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:369
double GetMinBlipSpeed(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:389
virtual bool InitializeFT(const WsfEM_Rcvr &aRadarRcvr, const WsfEM_Xmtr &aRadarXmtr)
Definition WsfEW_FalseTargetEffect.cpp:72
WsfEW_FalseTargetEffect()
Definition WsfEW_FalseTargetEffect.cpp:39
~WsfEW_FalseTargetEffect() override=default
double GetMaxBlipSpeed(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:399
double GetScanRateMultiplier(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:349
bool GetAutoGenFTs(WsfStringId aSystemTypeId) const
Definition WsfEW_FalseTargetEffect.cpp:359
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
WsfEW_Effect * Clone() const override
Definition WsfEW_PulseEffect.cpp:42
virtual void SetJammerPulseDensity(WsfStringId aSystemTypeId, double aJammerPulseDensity, bool aIsExplicit=false)
Definition WsfEW_PulseEffect.cpp:156
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
bool ProcessInput(UtInput &aInput) override
Definition WsfEW_PulseEffect.cpp:61
An instance of this class quantitatively models the multiple false targets that will be perceived by.
Definition WsfFalseTarget.hpp:50
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Copyrights Multiple, All Rights Reserved