12#ifndef WSFMOBILITYANDFIREPOWERLETHALITY_HPP
13#define WSFMOBILITYANDFIREPOWERLETHALITY_HPP
15#include "wsf_mil_export.h"
20#include "UtCallbackHolder.hpp"
83 void Update(
double aSimTime);
124 double mPdGivenProximity;
125 double mP_MK_GivenDamage;
126 double mP_FK_GivenDamage;
127 double mP_KK_GivenDamage;
149 static bool LoadInstance(UtInput& aInput,
Vulnerability*& aCM_EffectPtr);
167 double mProbWpnDefeat;
168 double mMinimumDuration;
169 double mMaximumHalfCone;
170 double mMinimumDistance;
171 double mMaximumDistance;
172 DistValue mDistValue;
208 std::vector<Vulnerability> mVulnerabilities;
226 bool Update(
double aSimTime);
248 double mCumEffectiveTime;
253 bool FindTargetType(
WsfStringId aTargetTypeId, TargetType*& aTargetTypePtr);
258 void AddInitialCM_States(
double aSimTime);
260 bool AddCM_State(
double aSimTime,
265 Vulnerability* aEffectPtr);
267 void GetTableAndScalarFor(
WsfPlatform* aTargetPtr,
const MFK_Table*& aTablePtr,
double& aPkFactor);
269 void Detonate(
double aSimTime);
288 std::shared_ptr<TableCollection> mSharedMFK_TablesPtr;
289 std::shared_ptr<TargetTypeCollection> mSharedTargetTypesPtr;
292 double mUpdateInterval;
295 UtCallbackHolder mCallbacks;
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
EventDisposition
Definition WsfEvent.hpp:37
void CalcInterceptPk(double aSimTime, WsfPlatform *aTargetPtr) override
Definition WsfExplicitWeaponEffects.cpp:90
bool ProcessInput(UtInput &aInput) override
Definition WsfExplicitWeaponEffects.cpp:65
WsfExplicitWeaponEffects(WsfScenario &aScenario)
Definition WsfExplicitWeaponEffects.cpp:29
WsfWeaponEffects * Clone() const override
Definition WsfExplicitWeaponEffects.cpp:39
void Null()
Definition WsfMobilityAndFirepowerLethality.cpp:1327
WsfPlatform * CM_Ptr()
Definition WsfMobilityAndFirepowerLethality.hpp:230
size_t PlatIndex() const
Definition WsfMobilityAndFirepowerLethality.hpp:228
WsfStringId CM_TypeId() const
Definition WsfMobilityAndFirepowerLethality.hpp:229
const Vulnerability * GetVulnerability() const
Definition WsfMobilityAndFirepowerLethality.hpp:233
WsfPlatform * TgtPtr()
Definition WsfMobilityAndFirepowerLethality.hpp:231
CM_State(double aSimTime, WsfStringId aCM_TypeId, WsfPlatform *aCM_PlatPtr, WsfPlatform *aMissilePtr, WsfPlatform *aTargetPtr, const Vulnerability *aEffectPtr, WsfSimulation *aSimulationPtr)
Definition WsfMobilityAndFirepowerLethality.cpp:1192
bool IsEffective() const
Definition WsfMobilityAndFirepowerLethality.hpp:232
Definition WsfMobilityAndFirepowerLethality.hpp:110
double PdGivenProximity() const
Definition WsfMobilityAndFirepowerLethality.hpp:117
KillType KillTypeGivenUniformDraw(double aUniformDrawValue, double aPkFactor=1.0) const
Definition WsfMobilityAndFirepowerLethality.cpp:853
MFK_Table(WsfStringId aTypeNameId)
Definition WsfMobilityAndFirepowerLethality.cpp:788
bool Initialize(double aSimTime, WsfMobilityAndFirepowerLethality *aLethality)
Definition WsfMobilityAndFirepowerLethality.cpp:799
bool ProcessInput(UtInput &aInput)
Definition WsfMobilityAndFirepowerLethality.cpp:817
double P_FK_GivenDamage() const
Definition WsfMobilityAndFirepowerLethality.hpp:119
double P_KK_GivenDamage() const
Definition WsfMobilityAndFirepowerLethality.hpp:120
double P_MK_GivenDamage() const
Definition WsfMobilityAndFirepowerLethality.hpp:118
static bool LoadInstance(UtInput &aInput, MFK_Table *&aTablePtr)
Definition WsfMobilityAndFirepowerLethality.cpp:762
Definition WsfMobilityAndFirepowerLethality.hpp:178
TargetType(WsfStringId aTypeNameId)
Definition WsfMobilityAndFirepowerLethality.cpp:1084
static bool LoadInstance(UtInput &aInput, TargetType *&aTargetTypePtr)
Definition WsfMobilityAndFirepowerLethality.cpp:1058
MFK_Table * GetTable()
Definition WsfMobilityAndFirepowerLethality.hpp:198
bool Add(const Vulnerability &aCM_Effect)
Definition WsfMobilityAndFirepowerLethality.cpp:1126
bool ProcessInput(UtInput &aInput)
Definition WsfMobilityAndFirepowerLethality.cpp:1158
Vulnerability * CM_EffectEntry(size_t aIndex)
Definition WsfMobilityAndFirepowerLethality.hpp:195
WsfStringId GetTargetTypeId() const
Definition WsfMobilityAndFirepowerLethality.hpp:200
bool FindVulnerabilityTo(WsfStringId aCM_TypeId, Vulnerability *&aVulnerabilityPtr)
Definition WsfMobilityAndFirepowerLethality.cpp:1140
bool Initialize(double aSimTime, WsfMobilityAndFirepowerLethality *aLethality)
Definition WsfMobilityAndFirepowerLethality.cpp:1094
size_t CM_EffectCount()
Definition WsfMobilityAndFirepowerLethality.hpp:194
bool ContainsVulnerabilities() const
Definition WsfMobilityAndFirepowerLethality.hpp:202
UpdateEvent(double aSimTime, WsfMobilityAndFirepowerLethality *aLethalityPtr)
Definition WsfMobilityAndFirepowerLethality.cpp:1336
EventDisposition Execute() override
Definition WsfMobilityAndFirepowerLethality.cpp:1345
Definition WsfMobilityAndFirepowerLethality.hpp:139
double GetProbabilityOfDefeat() const
Definition WsfMobilityAndFirepowerLethality.hpp:158
double GetMaxHalfCone() const
Definition WsfMobilityAndFirepowerLethality.hpp:154
Vulnerability(WsfStringId aCM_TypeNameId)
Definition WsfMobilityAndFirepowerLethality.cpp:922
double GetMaxDist() const
Definition WsfMobilityAndFirepowerLethality.hpp:155
WsfStringId GetCM_TypeId() const
Definition WsfMobilityAndFirepowerLethality.hpp:159
double GetPkFactor() const
Definition WsfMobilityAndFirepowerLethality.hpp:157
double GetMinDist() const
Definition WsfMobilityAndFirepowerLethality.hpp:156
const MFK_Table * GetAlternateTablePtr() const
Definition WsfMobilityAndFirepowerLethality.hpp:160
DistValue GetDistEnum() const
Definition WsfMobilityAndFirepowerLethality.hpp:152
double GetMinDuration() const
Definition WsfMobilityAndFirepowerLethality.hpp:153
DistValue
Definition WsfMobilityAndFirepowerLethality.hpp:142
@ cMSL_TO_CM
Definition WsfMobilityAndFirepowerLethality.hpp:145
@ cMSL_TO_TGT
Definition WsfMobilityAndFirepowerLethality.hpp:143
@ cCM_TO_TGT
Definition WsfMobilityAndFirepowerLethality.hpp:144
Definition WsfMobilityAndFirepowerLethality.hpp:62
TargetType * GetTargetType(WsfStringId aTargetTypeId)
Definition WsfMobilityAndFirepowerLethality.cpp:448
void PlatformDeleted(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfMobilityAndFirepowerLethality.cpp:548
WsfMobilityAndFirepowerLethality(WsfScenario &aScenario)
Default constructor.
Definition WsfMobilityAndFirepowerLethality.cpp:55
WsfMobilityAndFirepowerLethality & operator=(const WsfMobilityAndFirepowerLethality &)=delete
bool IsTypeMatch(const std::vector< WsfStringId > &aPlatTypes, WsfStringId aCM_Type)
Definition WsfMobilityAndFirepowerLethality.cpp:264
bool ProcessInput(UtInput &aInput) override
Definition WsfMobilityAndFirepowerLethality.cpp:347
bool Add(const MFK_Table &aTable)
Definition WsfMobilityAndFirepowerLethality.cpp:398
std::string MyFullName() const
Definition WsfMobilityAndFirepowerLethality.cpp:106
std::vector< MFK_Table > TableCollection
Definition WsfMobilityAndFirepowerLethality.hpp:271
void WeaponFired(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, const WsfTrack *aTrackPtr)
Definition WsfMobilityAndFirepowerLethality.cpp:510
bool Initialize(double aSimTime, const WsfWeaponEngagement *aEngagementPtr) override
Definition WsfMobilityAndFirepowerLethality.cpp:119
static const double cSLIGHT_DAMAGE
Definition WsfMobilityAndFirepowerLethality.hpp:92
std::vector< TargetType > TargetTypeCollection
Definition WsfMobilityAndFirepowerLethality.hpp:272
MFK_Table * GetTable(WsfStringId aTableNameId)
Definition WsfMobilityAndFirepowerLethality.cpp:470
static const double cMODERATE_DAMAGE
Definition WsfMobilityAndFirepowerLethality.hpp:93
double UpdateInterval() const
Definition WsfMobilityAndFirepowerLethality.hpp:89
KillType
Definition WsfMobilityAndFirepowerLethality.hpp:65
@ cNO_KILL
Definition WsfMobilityAndFirepowerLethality.hpp:66
@ cMOBILITY
Definition WsfMobilityAndFirepowerLethality.hpp:68
@ cCATASTROPHIC_KILL
Definition WsfMobilityAndFirepowerLethality.hpp:70
@ cFIREPOWER
Definition WsfMobilityAndFirepowerLethality.hpp:67
@ cFIREPOWER_AND_MOBILITY
Definition WsfMobilityAndFirepowerLethality.hpp:69
std::vector< CM_State * > CM_StatePtrCollection
Definition WsfMobilityAndFirepowerLethality.hpp:212
std::string KillTypeName(KillType aType) const
Definition WsfMobilityAndFirepowerLethality.cpp:326
WsfStringId GetNameId() const
Definition WsfNamed.hpp:36
WsfNamed()
Definition WsfNamed.cpp:17
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
virtual void ApplyEffectTo(double aSimTime, WsfPlatform *aOtherPlatformPtr)
Definition WsfWeaponEffects.cpp:549
virtual bool Initialize(double aSimTime, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfWeaponEffects.cpp:150
WsfWeaponEffects(WsfScenario &aScenario)
Definition WsfWeaponEffects.cpp:51
Definition WsfWeaponEngagement.hpp:43