|
WSF
|
#include <WsfExoAtmosphericLethality.hpp>


Public Member Functions | |
| WsfExoAtmosphericLethality (WsfScenario &aScenario) | |
| Default constructor. | |
| ~WsfExoAtmosphericLethality () override=default | |
| WsfWeaponEffects * | Clone () const override |
| bool | PreInitialize () override |
| bool | Initialize (double aSimTime, const WsfWeaponEngagement *aEngagementPtr) override |
| bool | ProcessInput (UtInput &aInput) override |
| void | CalcInterceptPk (double aSimTime, WsfPlatform *aTargetPtr) override |
| void | Terminate (double aSimTime) override |
| Public Member Functions inherited from WsfExplicitWeaponEffects | |
| WsfExplicitWeaponEffects (WsfScenario &aScenario) | |
| ~WsfExplicitWeaponEffects () override=default | |
| WsfWeaponEffects * | Clone () const override |
| bool | ProcessInput (UtInput &aInput) override |
| virtual double | MaximumEffectiveRadiusSquared () const |
| Access the miss radius squared beyond which the weapon has no effect. | |
| virtual double | MaximumEffectiveRadius () const |
| Access the miss radius beyond which the weapon has no effect. | |
| void | SetMaxiumEffectiveRadius (double aRadius) |
| Set the radius beyond which the weapon has no effect. | |
| Public Member Functions inherited from WsfWeaponEffects | |
| WsfWeaponEffects (WsfScenario &aScenario) | |
| ~WsfWeaponEffects () override | |
| bool | ProcessInput (UtInput &aInput) override |
| UtScriptContext * | GetScriptAccessibleContext () const override |
| Result | GetTargetResult () const |
| Result | GetIncidentalResult () const |
| Result | GetTotalResult () const |
| bool | UseLaunchPk () const |
| bool | UseInterceptPk () const |
| double | GetPkDegrade () const |
| Return the current Pk degrade factor. | |
| double | GetPkConstraint () const |
| void | SetInvincibleIndex (unsigned int aPlatformID) |
| Set the ID of a platform which shall not be damaged. (Usually the launching entity.). | |
| unsigned int | GetInvincibleIndex () const |
| Get the ID of a platform which will not be damaged. | |
| void | SetDamageRadius (double aDamageRadius) |
| Set the maximum lethal damage radius for this effect. | |
| double | GetDamageRadius () const |
| Return the maximum lethal damage radius for this effect. | |
| double | GetLaunchPk () const |
| Get the Launch Pk. | |
| double | GetInterceptPk () const |
| Get the Intercept Pk. | |
| bool | DrawEndgamePk () |
| Force a pk draw for an external platform target. | |
| virtual double | GetCEP () const |
| Access the value for engagement Circular Error Probable (CEP). | |
| void | SetCEP (double aValue) |
| void | SetPkDegrade (double aPkDegrade) |
| virtual double | GetPkDrawn () const |
| Access the Pk value drawn for the (intended) target hit assessment. | |
| bool | DebugEnabled () const |
| Returns 'true' if debugging is enabled for this instance. | |
| void | SetDebugEnabled (bool aDebugEnabled) |
| Enable or disable debugging for this instance. | |
| unsigned int | KilledPlatformCount () const |
| Method returns the count of platforms killed during this engagement. | |
| bool | IsKilledPlatform (size_t aPlatformIndex) const |
| Returns 'true' if the specified WSF platform index has been killed during this engagement. | |
| WsfPk::Table * | GetPkTable () |
| WsfScenario & | GetScenario () |
| virtual void | ProcessEffectExplicit (double aSimTime) |
| virtual void | ProcessEffectImplicit (double aSimTime) |
| void | Defeat () |
| bool | GetIncidentalDamageAllowed () const |
| void | SetIncidentalDamageAllowed (bool aIncidentalDamageAllowed) |
| bool | GetParentDamageAllowed () const |
| void | SetParentDamageAllowed (bool aParentDamageAllowed) |
| Public Member Functions inherited from WsfObject | |
| WsfObject () | |
| This is the constructor for the WsfObject class. | |
| ~WsfObject () override | |
| This is the destructor for the WsfObject class. | |
| const char * | GetScriptClassName () const override |
| const std::string & | GetType () const |
| WsfStringId | GetTypeId () const |
| Get the string ID of the 'type' of the object. | |
| void | SetType (WsfStringId aType) |
| const std::string & | GetBaseType () const |
| WsfStringId | GetBaseTypeId () const |
| const TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (const WsfObject &aRhs) |
| Assignment operator. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Protected Types | |
| using | IvPkPair = std::pair<double, double> |
| using | Points = std::vector<IvPkPair> |
Protected Member Functions | |
| WsfExoAtmosphericLethality (const WsfExoAtmosphericLethality &aSrc)=default | |
| WsfExoAtmosphericLethality & | operator= (const WsfExoAtmosphericLethality &aRhs)=delete |
| Prevent use of operator= by declaring, but not defining. | |
| double | InterpPkArray (double aIV_Value, const Points &aArray) const |
| double | GetVelocityPk (double aVelocityValue) |
| double | GetAnglePk (double aAngleValue) |
| Protected Member Functions inherited from WsfExplicitWeaponEffects | |
| WsfExplicitWeaponEffects (const WsfExplicitWeaponEffects &aSrc)=default | |
| void | CalcInterceptPk (double aSimTime, WsfPlatform *aTargetPtr) override |
| void | CalcPkParameters (WsfPlatform *aTargetPtr, double &aAzimuth, double &aElevation, double &aMissileSpeed, double &aTargetSpeed) override |
| bool | IsVulnerable (WsfPlatform *aTargetPtr) override |
| double | LastTestRadiusSquared () const |
| void | CalcInterceptGeometry (WsfPlatform *aTargetPtr, double &aRangeRate, double &aApproachAngle) |
| Protected Member Functions inherited from WsfWeaponEffects | |
| WsfWeaponEffects (const WsfWeaponEffects &aSrc) | |
| Copy Constructor for Clone(). | |
| WsfWeaponEffects & | operator= (const WsfWeaponEffects &aRhs) |
| virtual void | ApplyEffectIncrement (double aSimTime, WsfPlatform *aOtherPlatformPtr, double aDamageAmount) |
| virtual void | ApplyEffectTo (double aSimTime, WsfPlatform *aOtherPlatformPtr) |
| virtual void | ApplyDamageResultToOtherPlatform (double aSimTime, WsfPlatform *aOtherPlatformPtr, double aDamage, Result aResult) |
| virtual void | CalcLaunchPk (double aSimTime) |
| virtual void | CalcPkDegradation (double aSimTime, WsfPlatform *aTargetPtr) |
| bool | IsIntendedTargetValid () |
| This protected method assures that a specified target index does exist. | |
| void | AddToKilledPlatforms (unsigned int aKilledIndex) |
| double | DrawUniformPk () |
| Draw a uniform value for Pk determination. | |
| void | ProcessEffectCommon (double aSimTime, WsfPlatform *aRefPlatformPtr) |
| bool | Defeated () const |
| Return a flag to indicate that this effect has been annulled by outside influences. | |
| const WsfWeaponEngagement * | GetEngagement () const |
| Return the Engagement that this effect was instantiated to support. | |
| void | SetUseLaunchPk () |
| Indicate that you wish to use the Launch Pk value (in lieu of the Intercept Pk value). | |
| void | SetUseInterceptPk () |
| Indicate that you wish to use the Intercept Pk value (in lieu of the Launch Pk value). | |
| void | SetLaunchPk (double aValue) |
| void | SetInterceptPk (double aValue) |
| void | SetPkDrawn (double aValue) |
| Set the Pk value used in the intended target hit assessment. | |
| void | SetIncidentalResult (const WsfWeaponEffects::Result &aResult) |
| void | SetTargetResult (const WsfWeaponEffects::Result &aResult) |
| void | SetResult (const WsfWeaponEffects::Result &aResult, bool aIsIntended) |
| size_t | KilledPlatform (size_t aIndex) |
| Method returns an index of one of the platforms killed during this engagement. | |
| const WsfWeaponEngagement * | GetEngagementPtr () const |
| WsfSimulation * | GetSimulation () const |
| WsfScriptContext * | GetScriptContext () const |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
Additional Inherited Members | |
| Public Types inherited from WsfWeaponEffects | |
| enum | Result { cINVALID , cMISSED , cDAMAGED , cKILLED } |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| Static Public Member Functions inherited from WsfWeaponEffects | |
| static WsfStringId | GetWeaponEffectsType (WsfPlatform &aPlatform) |
| Return the weapon effects type for the associated platform. | |
| static std::string | GetResultString (WsfWeaponEffects::Result aResult) |
| Static Public Attributes inherited from WsfWeaponEffects | |
| static const char * | cTYPE_KIND = "weapon_effect" |
| static const double | cUNHARMED = 0.0 |
| Value indicating no damage to a player, the weapon had no effect. | |
| static const double | cMORTALLY_WOUNDED = 1.0 |
A weapon effect that maps Probability of Kill (Pk) into terminal velocity conditions.
This class is a specialization of WsfExplicitWeaponEffects that implements linearly varying target kill probabilities onto the terminal velocities of an engagement. The independent variable choices are: Impact Velocity and Impact Angle. A Pk contribution of each of these may be combined into a final Pk, against which a random draw is made for kill determination.
|
protected |
|
protected |
| WsfExoAtmosphericLethality::WsfExoAtmosphericLethality | ( | WsfScenario & | aScenario | ) |
Default constructor.
References WsfWeaponEffects::SetUseInterceptPk(), and WsfExplicitWeaponEffects::WsfExplicitWeaponEffects().
Referenced by Clone(), operator=(), and WsfExoAtmosphericLethality().
|
overridedefault |
References WsfWeaponEffects::WsfWeaponEffects().
|
protecteddefault |
References WsfExoAtmosphericLethality().
|
overridevirtual |
Method to calculate the Intercept Pk, in response to engagement conditions at intercept. Will be called at the beginning of ProcessEffectExplicit().
| aSimTime | simulated time for the weapon effect. |
| aTargetPtr | Target under consideration for damage. |
Reimplemented from WsfWeaponEffects.
References WsfExplicitWeaponEffects::CalcInterceptGeometry(), WsfWeaponEffects::Defeated(), GetAnglePk(), GetVelocityPk(), and WsfWeaponEffects::SetInterceptPk().
|
overridevirtual |
Create a clone of the object.
Implements WsfWeaponEffects.
References WsfExoAtmosphericLethality(), and WsfWeaponEffects::WsfWeaponEffects().
|
protected |
References InterpPkArray().
Referenced by CalcInterceptPk(), and operator=().
|
protected |
References InterpPkArray().
Referenced by CalcInterceptPk(), and operator=().
|
overridevirtual |
Initializes the effect at the time of weapon firing. May be used to set the anticipated launch Pk or CEP for the engagement, if needed. Calls virtual CalcLaunchPk()
| aSimTime | simulated time at the beginning of the engagement. |
| aEngagementPtr | The engagement that owns and controls this effect. |
Reimplemented from WsfWeaponEffects.
References WsfWeaponEffects::GetSimulation(), WsfWeaponEffects::Initialize(), WsfSimulation::LockRandom(), and WsfSimulation::UnlockRandom().
|
protected |
Referenced by GetAnglePk(), GetVelocityPk(), and operator=().
|
protecteddelete |
Prevent use of operator= by declaring, but not defining.
References GetAnglePk(), GetVelocityPk(), InterpPkArray(), and WsfExoAtmosphericLethality().
|
overridevirtual |
Method will initialize any data required by the object prior to first use. (The type loader must call this method on each object after the data input stream is read and parsed.)
Reimplemented from WsfWeaponEffects.
References WsfWeaponEffects::GetEngagement(), WsfObject::GetName(), WsfWeaponEngagement::GetWeaponPlatform(), WsfWeaponEffects::PreInitialize(), sort(), and success.
|
overridevirtual |
Process input from a generic source.
Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
References WsfExplicitWeaponEffects::ProcessInput().
|
overridevirtual |
Method to complete the effect at the end of a weapon engagement. The first action is to inform the WsfObservers of WsfWeaponEngagement termination. For an explicit engagement, the next action is to remove the weapon platform from the simulation. For both implicit and explicit engagements, killed players are then removed.
| aSimTime | Current simulated time value. |
Reimplemented from WsfWeaponEffects.
References WsfWeaponEffects::GetEngagement(), WsfWeaponEngagement::GetWeaponPlatform(), and WsfWeaponEffects::Terminate().