WSF
WsfSA_Assess Class Reference

This is the assess module of the SA Processor. More...

#include <WsfSA_Assess.hpp>

Inheritance diagram for WsfSA_Assess:
Collaboration diagram for WsfSA_Assess:

Classes

struct  AssessEngagementData
struct  AircraftSignatureParameters
struct  PlatormScorePairing

Public Types

enum  AcceptableRiskLevel { LOW = 0 , MEDIUM = 1 , HIGH = 2 }

Public Member Functions

 WsfSA_Assess (WsfSA_Processor *aSA_ProcPtr, WsfSA_Processor::PerceiveData *aDataPtr)
WsfSA_Assessoperator= (const WsfSA_Assess &)=delete
 ~WsfSA_Assess ()
bool ProcessInput (UtInput &aInput)
 Process input from script.
void Initialize (double aSimTime)
 Performs initialization during creation.
double TryUpdateEngagements (double aSimTime)
 Attempt to update engagement data at a sim time, and return an appropriate time for the next event update.
double TryUpdatePrioritizedItemData (double aSimTime)
 Attempt to update prioritized threat and target data at a sim time, and return an appropriate time for the next event update.
double TryUpdatePrioritizedItemCalculation (double aSimTime)
 Attempt to update prioritized threat and target calculations at a sim time, and return an appropriate time for the next event update.
void UpdateEngagements (double aSimTime)
 Update engagement data at a sim time, and return an appropriate time for the next event update.
void UpdatePrioritizedItemData (double aSimTime)
 Update prioritized threat and target data at a sim time, and return an appropriate time for the next event update.
void UpdatePrioritizedItemCalculation (double aSimTime)
 Update prioritized threat and target calculations at a sim time, and return an appropriate time for the next event update.
void UpdateEngagementsData (double aSimTime)
 Update engagement data at a sim time, and return an appropriate time for the next event update.
void UpdatePrioritizedThreatsAndTargetsData (double aSimTime)
 Update prioritized threat and target data at a sim time, and return an appropriate time for the next event update.
void AssessBogiesBandits (double aSimTime)
 Update and assess the current perceived bogies and bandits groups for the current platform.
void CalculatePrioritizedThreats (double aSimTime)
 Calculate the prioritized threats for the current platform.
void CalculatePrioritizedTargets (double aSimTime)
 Calculate the prioritized targets for the current platform.
void UpdateWeaponSupport (double aSimTime)
 This updates the weapon support parameters using an optional script function.
unsigned int MaxPrioritizedThreats ()
 Return the max prioritized threat count the platform can handle.
void SetMaxPrioritizedThreats (unsigned int aMax)
 Set the prioritized threat maximum.
void ResetMaxPrioritizedThreats ()
 Set the max prioritized target to the value provided during initialization (default is 0 where not provided).
unsigned int MaxPrioritizedTargets ()
 Return the max prioritized target count the platform can handle.
void SetMaxPrioritizedTargets (unsigned int aMax)
 Set the prioritized target maximum.
void ResetMaxPrioritizedTargets ()
 Set the max prioritized target to the value provided during initialization (default is 0 where not provided).
double AngleOffTarget2D (const WsfPlatform &aTargetPlatform) const
 This returns the 2D angle-off between the target and the platform (the difference in headings).
double AngleOffTarget3D (const WsfPlatform &aTargetPlatform) const
 This returns the 3D angle-off between the target and the platform (the difference in heading/velocity).
double AspectAngleForTarget2D (const WsfPlatform &aTargetPlatform) const
 This returns the aspect-angle for the target relative to the platform's position in 2D, meaning the aspect is based on a horizontal plane that contains the target, with the platform's position projected onto the plane.
double AspectAngleForTarget3D (const WsfPlatform &aTargetPlatform) const
 This returns the aspect-angle for the target relative to the platform's position in 3D, meaning the aspect is based on the angle between a 3D vector opposite of the target's velocity vector and the vector from the target to the platform's position.
double OffBoresightAngleForTarget (const WsfPlatform &aTargetPlatform) const
 This returns the off-boresight angle for the target relative to the platform's x-axis.
double OffBoresightAngleForTarget (const double aLocationWCS[3]) const
 This returns the off-boresight angle for the target location relative to the platform's x-axis.
double ExpectedDetectionRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected detection range (in meters) where the current platform could detect the target platform, with the current relative aspects and states.
double ExpectedDetectionRangeAgainstTarget (size_t aIndex) const
 This returns the expected detection range (in meters) where the current platform could detect the target platform, with the current relative aspects and states.
double ExpectedDetectionRangeByTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected detection range (in meters) where the target platform could detect the current platform, with the current relative aspects and states.
double ExpectedDetectionRangeByTarget (size_t aIndex) const
 This returns the expected detection range (in meters) where the target platform could detect the current platform, with the current relative aspects and states.
double ExpectedDetectionRange (const WsfPlatform &aSourePlatform, const WsfPlatform &aTargetPlatform) const
 This returns the expected detection range (in meters) where the current platform could detect the target platform, with the current relative aspects and states.
double ExpectedNormalizedDetectionRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected detection range against a given target platform as a normalized value between 0 and 1.
double ExpectedNormalizedDetectionRangeAgainstTarget (size_t aIndex) const
 This returns the expected detection range against a given target platform as a normalized value between 0 and 1.
double ExpectedNormalizedWezRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected WEZ range against a given target platform as a normalized value between 0 and 1.
double ExpectedNormalizedWezRangeAgainstTarget (size_t aIndex) const
 This returns the expected WEZ range against a given target platform as a normalized value between 0 and 1.
double ExpectedWezRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected WEZ range for the current platform against the target platform, with the current relative aspects and states.
double ExpectedWezRangeAgainstTarget (size_t aIndex) const
 This returns the expected WEZ range for the current platform against the target platform, with the current relative aspects and states.
double ExpectedMinimumEngagementRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected minimum engagement range for the current platform against the given target platform.
double ExpectedMinimumEngagementRangeAgainstTarget (size_t aIndex) const
 This returns the expected minimum engagement range for the current platform against the given target platform.
double ExpectedMaximumEngagementRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected maximum engagement range for the current platform against the given target platform.
double ExpectedMaximumEngagementRangeAgainstTarget (size_t aIndex) const
 This returns the expected maximum engagement range for the current platform against the given target platform.
double ExpectedNoEscapeRangeAgainstTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected "no escape" engagement range for the current platform against the given target platform.
double ExpectedNoEscapeRangeAgainstTarget (size_t aIndex) const
 This returns the expected "no escape" engagement range for the current platform against the given target platform.
double ExpectedWezRangeByTarget (const WsfPlatform &aTargetPlatform) const
 This returns the expected WEZ range for the target platform against the current platform, with the current relative aspects and states.
double ExpectedWezRangeByTarget (size_t aIndex) const
 This returns the expected WEZ range for the target platform against the current platform, with the current relative aspects and states.
double CalcSlantRange (const WsfPlatform &aSourcePlatform, const WsfPlatform &aTargetPlatform) const
 This returns the range between the specified source platform and the target platform.
double CalcSlantRange (const WsfPlatform &aTargetPlatform) const
 This returns the range between the current platform and the specified target platform.
double CalcDeltaAltitude (const WsfPlatform &aSourcePlatform, const WsfPlatform &aTargetPlatform) const
 This returns the difference in altitude the specified source platform and the target platform.
double CalcDeltaAltitude (const WsfPlatform &aTargetPlatform) const
 This returns the difference in altitude between the current platform and the specified target platform.
bool WeaponBayDoorsOpen () const
 A placeholder function that, in the future, will return whether a platform's weapon bay doors are open.
bool GetWeaponBayOpen ()
 This returns the state of the weapon bay doors.
void SetWeaponBayOpen (bool aWeaponBayOpen)
 This sets the state of the weapon bay doors.
std::string GetSelectedWeapon ()
 This returns the name of the current selected weapon.
void SetSelectedWeapon (const std::string &aSelectedWeapon)
 This sets the name of the current selected weapon.
double GetCornerSpeed_KCAS () const
 A placeholder function that, in the future, will return the minimum speed required to reach the platform's maximum G Load.
std::vector< WsfSA_PerceivedItem * > PerceivedThreatItems (double aSimTime)
 Return a reference to the list of perceived items for the current platform at a given time.
std::vector< size_t > PrioritizedThreatIds () const
 This returns a list of prioritized threat platform ids, beginning with the highest priority threat and working down to the lowest priority threat.
std::vector< std::string > PrioritizedThreatNames () const
 This returns a list of prioritized threat platform names, beginning with the highest priority threat and working down to the lowest priority threat.
const std::list< UtWeakReference< WsfSA_PerceivedItem > > & GetPrioritizedThreatItems () const
 This returns a const list of prioritized threat perceived items, beginning with the highest priority threat and working down to the lowest priority threat.
std::list< UtWeakReference< WsfSA_PerceivedItem > > & GetPrioritizedThreatItems ()
 This returns a list of prioritized threat perceived items, beginning with the highest priority threat and working down to the lowest priority threat.
const std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedThreatEntities () const
 This returns a const list of prioritized threat perceived entities, beginning with the highest priority threat and working down to the lowest priority threat.
std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedThreatEntities ()
 This returns a list of prioritized threat perceived entities, beginning with the highest priority threat and working down to the lowest priority threat.
const std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedAircraftThreatEntities () const
 This returns a const list of prioritized aircraft threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.
std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedAircraftThreatEntities ()
 This returns a list of prioritized aircraft threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.
const std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedMissileThreatEntities () const
 This returns a const list of prioritized missile threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.
std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedMissileThreatEntities ()
 This returns a list of prioritized missile threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.
const std::list< UtWeakReference< WsfSA_Group > > & GetPrioritizedThreatGroups () const
 This returns a const list of prioritized threat unfocused groups, beginning with the highest priority threat and working down to the lowest priority threat.
std::list< UtWeakReference< WsfSA_Group > > & GetPrioritizedThreatGroups ()
 This returns a list of prioritized threat unfocused groups, beginning with the highest priority threat and working down to the lowest priority threat.
WsfSA_PerceivedItemHighestThreat (double aSimTime)
 This returns a pointer to the highest threat or nullptr if no such threat exists.
WsfSA_EntityPerceptionHighestThreatEntity (double aSimTime)
 This returns a pointer to the highest entity threat or nullptr if no such threat exists.
WsfSA_EntityPerceptionHighestThreatAircraft (double aSimTime)
 This returns a pointer to the highest aircraft threat or nullptr if no such threat exists.
WsfSA_EntityPerceptionHighestThreatMissile (double aSimTime)
 This returns a pointer to the highest missile threat or nullptr if no such threat exists.
WsfSA_GroupHighestThreatGroup (double aSimTime)
 This returns a pointer to the highest group threat or nullptr if no such threat exists.
std::vector< size_t > PrioritizedTargetIds () const
 This returns a list of prioritized target platform ids, beginning with the highest priority target and working down to the lowest priority target.
std::vector< std::string > PrioritizedTargetNames () const
 This returns a list of prioritized target platform names, beginning with the highest priority target and working down to the lowest priority target.
const std::list< UtWeakReference< WsfSA_PerceivedItem > > & GetPrioritizedTargetItems () const
 This returns a const list of prioritized target perceived items, beginning with the highest priority target and working down to the lowest priority target.
std::list< UtWeakReference< WsfSA_PerceivedItem > > & GetPrioritizedTargetItems ()
 This returns a list of prioritized target perceived items, beginning with the highest priority target and working down to the lowest priority target.
const std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedTargetEntities () const
 This returns a const list of prioritized target perceived entities, beginning with the highest priority target and working down to the lowest priority target.
std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedTargetEntities ()
 This returns a list of prioritized target perceived entities, beginning with the highest priority target and working down to the lowest priority target.
const std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedAircraftTargetEntities () const
 This returns a const list of prioritized aircraft target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.
std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedAircraftTargetEntities ()
 This returns a list of prioritized aircraft target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.
const std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedMissileTargetEntities () const
 This returns a const list of prioritized missile target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.
std::list< UtWeakReference< WsfSA_EntityPerception > > & GetPrioritizedMissileTargetEntities ()
 This returns a list of prioritized missile target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.
const std::list< UtWeakReference< WsfSA_Group > > & GetPrioritizedTargetGroups () const
 This returns a const list of prioritized target unfocused groups, beginning with the highest priority target and working down to the lowest priority target.
std::list< UtWeakReference< WsfSA_Group > > & GetPrioritizedTargetGroups ()
 This returns a list of prioritized target unfocused groups, beginning with the highest priority target and working down to the lowest priority target.
WsfSA_PerceivedItemBestTarget (double aSimTime)
 This returns a pointer to the best target or nullptr if no such target exists.
WsfSA_EntityPerceptionBestTargetEntity (double aSimTime)
 This returns a pointer to the best target entity or nullptr if no such target exists.
WsfSA_EntityPerceptionBestTargetAircraft (double aSimTime)
 This returns a pointer to the best aircraft target or nullptr if no such target exists.
WsfSA_EntityPerceptionBestTargetMissile (double aSimTime)
 This returns a pointer to the best missile target or nullptr if no such target exists.
WsfSA_GroupBestTargetGroup (double aSimTime)
 This returns a pointer to the best group target or nullptr if no such target exists.
std::vector< std::size_t > CurrentlyTrackedPlatformIds () const
 This returns a list of platform ids that are currently being tracked.
std::vector< std::string > CurrentlyTrackedPlatformNames () const
 This returns a list of platform names that are currently being tracked.
bool IsCurrentlyBeingTracked (size_t aPlatformId) const
 This returns true if the specified platform id is in the list of platforms that are currently being tracked.
const std::list< WsfSA_Group * > & PerceivedGroups () const
 This returns a list of SA_PerceivedGroups that are currently perceived and assessed.
const std::list< WsfSA_Group * > & FocusedGroups () const
 This returns a list of WsfSA_Groups that are focused.
const std::list< WsfSA_Group * > & UnfocusedGroups () const
 This returns a list of WsfSA_Groups that are unfocused.
void UpdateGroupFocusLists ()
 Update mFocusedGroups and mUnfocusedGroups.
void SortedGroups (int aSortingEnum, std::vector< WsfSA_Group * > &aGroups) const
 This returns all groups recognized by the SAP, sorted according to the given enumeration.
WsfSA_GroupGetGroup (const std::string &aName) const
 This returns a pointer to the group with the specified name or null, if no group exists.
std::string MissionTask () const
 This returns a string indicating the primary mission task.
AcceptableRiskLevel AcceptableLevelOfRisk () const
 This returns the acceptable level of risk, expressed as an enum.
uint8_t AcceptableLevelOfRiskByte () const
 This returns the acceptable level of risk, expressed as an uint8_t.
double Risk () const
 This returns a normalized risk level, ranging from 0 (no risk) to 1 (maximum risk).
double Defensiveness () const
 This returns a normalized defensiveness level, ranging from 0 (fully non-defensive) to 1 (fully defensive).
double Urgency () const
 This returns a normalized urgency level, ranging from 0 (no urgency) to 1 (maximum urgency).
double SelfRisk () const
 This returns a normalized self-risk level, ranging from 0 (no risk) to 1 (maximum risk).
double FlightRisk () const
 This returns a normalized flight-risk level, ranging from 0 (no risk) to 1 (maximum risk).
double PackageRisk () const
 This returns a normalized package-risk level, ranging from 0 (no risk) to 1 (maximum risk).
double MissionRisk () const
 This returns a normalized mission-risk level, ranging from 0 (no risk) to 1 (maximum risk).
bool SupportingWeapon () const
 This returns true if at least one weapon is being supported.
bool IgnoreMissilesAsThreats () const
 This returns true if missiles should be ignored as threats.
bool IgnoreBogiesAsThreats () const
 This returns true if bogies should be ignored as threats.
bool IgnoreMissilesAsTargets () const
 This returns true if missiles should be ignored as targets.
bool IgnoreBogiesAsTargets () const
 This returns true if bogies should be ignored as targets.

Static Public Member Functions

static double AngleOffTarget2D (const WsfPlatform &aPlatform, const WsfPlatform &aTargetPlatform)
 This returns the 2D angle-off between the target and the platform (the difference in headings).
static double AngleOffTarget3D (const WsfPlatform &aPlatform, const WsfPlatform &aTargetPlatform)
 This returns the 3D angle-off between the target and the platform (the difference in heading/velocity).
static double AspectAngleForTarget2D (const WsfPlatform &aPlatform, const WsfPlatform &aTargetPlatform)
 This returns the aspect-angle for the target relative to the platform's position in 2D, meaning the aspect is based on a horizontal plane that contains the target, with the platform's position projected onto the plane.
static double AspectAngleForTarget3D (const WsfPlatform &aPlatform, const WsfPlatform &aTargetPlatform)
 This returns the aspect-angle for the target relative to the platform's position in 3D, meaning the aspect is based on the angle between a 3D vector opposite of the target's velocity vector and the vector from the target to the platform's position.
static double OffBoresightAngleForTarget (const WsfPlatform &aPlatform, const WsfPlatform &aTargetPlatform)
 This returns the off-boresight angle for the target relative to the platform's x-axis.

Protected Member Functions

 WsfSA_Assess (const WsfSA_Assess &)=default
void CalculateTrackedPlatforms (double aSimTime)
 Calculate the currently tracked platforms for the current platform.
bool PlatformIsCurrentlyBeingTracked (size_t aTgtPlatformIndex) const
 This returns true if the specified target platform index is in the list of currently tracked platforms.
WsfLocalTrackGetPerceivedTrackedPlatformWithTarget (size_t aTgtPlatformIndex)
 This returns a pointer to the first track containing the specified target platform index, or returns null.
void CalculateOverallRisks (double aSimTime)
 Calculate the overall risk, self-risk, flight-risk, package-risk, and mission-risk level for the current platform.
void CalculateOverallDefensiveness (double aSimTime)
 Calculate the overall defensiveness level for the current platform Defensiveness is normalized, and limited to 0.0 to 1.0.
void CalculateOverallUrgency (double aSimTime)
 Calculate the overall sense of urgency for the current platform Urgency is normalized, and limited to 0.0 to 1.0.
double CalculateThreatLevel (double aSimTime, WsfSA_PerceivedItem *aThreatItem, bool aIsBogie)
 Calculate the threat level posed by the specified threat SA entity to the current platform.
double CalculateTargetValue (double aSimTime, WsfSA_PerceivedItem *aTargetItem, bool aIsBogie)
 Calculate the target value presented by the specified threat SA entity to the current platform Target value is normalized, and limited to 0.0 to 1.0.
double CalculateMissileThreatLevel (double aSimTime, WsfSA_EntityPerception *aThreatItem, bool aIsBogie)
 Calculate the threat level posed by the specified missile threat SA entity to the current platform.
double CalculateMissileTargetValue (double aSimTime, WsfSA_EntityPerception *aTargetItem, bool aIsBogie)
 Calculate the target value presented by the specified missile SA entity to the current platform Target value is normalized, and limited to 0.0 to 1.0.
double CalculateRisk (double aSimTime, WsfSA_EntityPerception *aThreatItem)
 Calculate the risk posed by the specified threat SA entity to the current platform Risk is normalized, and limited to 0.0 to 1.0.
double CalculateDefensiveness (double aSimTime, WsfSA_EntityPerception *aThreatItem)
 Calculate the defensiveness caused by the specified threat SA entity to the current platform.
double CalculateUrgency (double aSimTime, WsfSA_EntityPerception *aThreatItem)
 Calculate the urgency created by the specified threat SA entity to the current platform Urgency is normalized, and limited to 0.0 to 1.0.
double ExecuteCalculateRisk (double aSimTime)
 This will call an AFSIM script function "CalculateRisk".
double ExecuteCalculateSelfRisk (double aSimTime)
 This will call an AFSIM script function "CalculateSelfRisk".
double ExecuteCalculateFlightRisk (double aSimTime)
 This will call an AFSIM script function "CalculateFlightRisk".
double ExecuteCalculatePackageRisk (double aSimTime)
 This will call an AFSIM script function "CalculatePackageRisk".
double ExecuteCalculateMissionRisk (double aSimTime)
 This will call an AFSIM script function "CalculateMissionRisk".
double ExecuteCalculateDefensiveness (double aSimTime)
 This will call an AFSIM script function "CalculateDefensiveness".
double ExecuteCalculateUrgency (double aSimTime)
 This will call an AFSIM script function "CalculateUrgency".
double ExecuteCalculateEntityThreatLevel (double aSimTime, WsfSA_EntityPerception *aThreatItem, bool aIsBogie)
 This will call an AFSIM script function "CalculateThreatLevel".
double ExecuteCalculateEntityTargetValue (double aSimTime, WsfSA_EntityPerception *aTargetItem, bool aIsBogie)
 This will call an AFSIM script function "CalculateTargetValue".
double ExecuteCalculateMissileThreatLevel (double aSimTime, WsfSA_EntityPerception *aThreatItem, bool aIsBogie)
 This will call an AFSIM script function "CalculateMissileThreatLevel".
double ExecuteCalculateMissileTargetValue (double aSimTime, WsfSA_EntityPerception *aTargetItem, bool aIsBogie)
 This will call an AFSIM script function "CalculateMissileTargetValue".
double ExecuteCalculateGroupThreatLevel (double aSimTime, WsfSA_Group *aThreatItem, bool aIsBogie)
 This will call an AFSIM script function "CalculateGroupThreatLevel".
double ExecuteCalculateGroupTargetValue (double aSimTime, WsfSA_Group *aTargetItem, bool aIsBogie)
 This will call an AFSIM script function "CalculateGroupTargetValue".
bool ExecuteCalcWeaponSupport (double aSimTime)
 This will call an AFSIM script function "CalcWeaponSupport".

Static Protected Member Functions

static bool CompareScore (const PlatormScorePairing &first, const PlatormScorePairing &second)

Friends

class WsfSA_Processor

Detailed Description

This is the assess module of the SA Processor.

Member Enumeration Documentation

◆ AcceptableRiskLevel

Enumerator
LOW 
MEDIUM 
HIGH 

Constructor & Destructor Documentation

◆ WsfSA_Assess() [1/2]

WsfSA_Assess::WsfSA_Assess ( WsfSA_Processor * aSA_ProcPtr,
WsfSA_Processor::PerceiveData * aDataPtr )

◆ ~WsfSA_Assess()

WsfSA_Assess::~WsfSA_Assess ( )

◆ WsfSA_Assess() [2/2]

Member Function Documentation

◆ AcceptableLevelOfRisk()

AcceptableRiskLevel WsfSA_Assess::AcceptableLevelOfRisk ( ) const
inline

This returns the acceptable level of risk, expressed as an enum.

◆ AcceptableLevelOfRiskByte()

uint8_t WsfSA_Assess::AcceptableLevelOfRiskByte ( ) const
inline

This returns the acceptable level of risk, expressed as an uint8_t.

◆ AngleOffTarget2D() [1/2]

double WsfSA_Assess::AngleOffTarget2D ( const WsfPlatform & aPlatform,
const WsfPlatform & aTargetPlatform )
static

This returns the 2D angle-off between the target and the platform (the difference in headings).

This calculates angle-off as the angle between the headings of the target and the platform. A positive angle-off is when the difference in between the target heading and the platform heading is positive and is less than or equal to Pi. If the difference is negative and is greater than negative Pi, the angle-off is negative. The angle is in radians.

Parameters
aPlatformplatform to calculate 2d angle-off from.
aTargetPlatformplatform to calculate 2d angle-off to.

Referenced by AngleOffTarget2D(), and UpdateEngagementsData().

◆ AngleOffTarget2D() [2/2]

double WsfSA_Assess::AngleOffTarget2D ( const WsfPlatform & aTargetPlatform) const

This returns the 2D angle-off between the target and the platform (the difference in headings).

This calculates angle-off as the angle between the headings of the target and the platform. A positive angle-off is when the difference in between the target heading and the platform heading is positive and is less than or equal to Pi. If the difference is negative and is greater than negative Pi, the angle-off is negative. The angle is in radians.

Parameters
aTargetPlatformplatform to calculate 2d angle-off to.

References AngleOffTarget2D(), and WsfSA_Module::GetPlatform().

◆ AngleOffTarget3D() [1/2]

double WsfSA_Assess::AngleOffTarget3D ( const WsfPlatform & aPlatform,
const WsfPlatform & aTargetPlatform )
static

This returns the 3D angle-off between the target and the platform (the difference in heading/velocity).

This calculates angle-off as the angle between the velocity vectors of the target and the platform. A positive angle-off is when the target is to the right of the platform. This is determined based on the y-vector of the platform. If the dot-product of the target's velocity vector and the platform's right side vector is positive, it is considered a positive angle-off. When the dot-product is negative, the angle-off is a negative value. The angle is in radians.

Parameters
aPlatformplatform to calculate 3d angle-off from.
aTargetPlatformplatform to calculate 3d angle-off to.

Referenced by AngleOffTarget3D().

◆ AngleOffTarget3D() [2/2]

double WsfSA_Assess::AngleOffTarget3D ( const WsfPlatform & aTargetPlatform) const

This returns the 3D angle-off between the target and the platform (the difference in heading/velocity).

This calculates angle-off as the angle between the velocity vectors of the target and the platform. A positive angle-off is when the target is to the right of the platform. This is determined based on the y-vector of the platform. If the dot-product of the target's velocity vector and the platform's right side vector is positive, it is considered a positive angle-off. When the dot-product is negative, the angle-off is a negative value. The angle is in radians.

Parameters
aTargetPlatformplatform to calculate 3d angle-off to.

References AngleOffTarget3D(), and WsfSA_Module::GetPlatform().

◆ AspectAngleForTarget2D() [1/2]

double WsfSA_Assess::AspectAngleForTarget2D ( const WsfPlatform & aPlatform,
const WsfPlatform & aTargetPlatform )
static

This returns the aspect-angle for the target relative to the platform's position in 2D, meaning the aspect is based on a horizontal plane that contains the target, with the platform's position projected onto the plane.

A positive angle is the "right side" of the target and a negative angle is "left side" of the target. The angle is in radians.

Parameters
aPlatformplatform to calculate 2d aspect-angle from.
aTargetPlatformplatform to calculate 2d aspect-angle to.

Referenced by AspectAngleForTarget2D(), UpdateEngagementsData(), and WsfSA_Processor::UpdateTrackData().

◆ AspectAngleForTarget2D() [2/2]

double WsfSA_Assess::AspectAngleForTarget2D ( const WsfPlatform & aTargetPlatform) const

This returns the aspect-angle for the target relative to the platform's position in 2D, meaning the aspect is based on a horizontal plane that contains the target, with the platform's position projected onto the plane.

A positive angle is the "right side" of the target and a negative angle is "left side" of the target. The angle is in radians.

Parameters
aTargetPlatformplatform to calculate 2d aspect-angle to.

References AspectAngleForTarget2D(), and WsfSA_Module::GetPlatform().

◆ AspectAngleForTarget3D() [1/2]

double WsfSA_Assess::AspectAngleForTarget3D ( const WsfPlatform & aPlatform,
const WsfPlatform & aTargetPlatform )
static

This returns the aspect-angle for the target relative to the platform's position in 3D, meaning the aspect is based on the angle between a 3D vector opposite of the target's velocity vector and the vector from the target to the platform's position.

Right side (positive) and left side (negative) is determined based on the y-vector of the target aircraft. If the vector dot-product of the target y-vector and the vector towards the platform is positive, it is considered "right side". The angle is measured in radians.

Parameters
aPlatformplatform to calculate 3d aspect-angle from.
aTargetPlatformplatform to calculate 3d aspect-angle to.

Referenced by AspectAngleForTarget3D().

◆ AspectAngleForTarget3D() [2/2]

double WsfSA_Assess::AspectAngleForTarget3D ( const WsfPlatform & aTargetPlatform) const

This returns the aspect-angle for the target relative to the platform's position in 3D, meaning the aspect is based on the angle between a 3D vector opposite of the target's velocity vector and the vector from the target to the platform's position.

Right side (positive) and left side (negative) is determined based on the y-vector of the target aircraft. If the vector dot-product of the target y-vector and the vector towards the platform is positive, it is considered "right side". The angle is measured in radians.

Parameters
aTargetPlatformplatform to calculate 3d aspect-angle to.

References AspectAngleForTarget3D(), and WsfSA_Module::GetPlatform().

◆ AssessBogiesBandits()

void WsfSA_Assess::AssessBogiesBandits ( double aSimTime)

Update and assess the current perceived bogies and bandits groups for the current platform.

Parameters
aSimTimesim time at which to calculate

References CalculateDefensiveness(), CalculateRisk(), CalculateTargetValue(), CalculateThreatLevel(), and CalculateUrgency().

Referenced by WsfSA_Perceive::UpdatePerceivedItemsCalculation().

◆ BestTarget()

WsfSA_PerceivedItem * WsfSA_Assess::BestTarget ( double aSimTime)

This returns a pointer to the best target or nullptr if no such target exists.

Parameters
aSimTimetime at which to get the item

References WsfSA_Module::GetSAP(), and WsfSA_Module::mDataPtr.

◆ BestTargetAircraft()

WsfSA_EntityPerception * WsfSA_Assess::BestTargetAircraft ( double aSimTime)

This returns a pointer to the best aircraft target or nullptr if no such target exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::mDataPtr.

◆ BestTargetEntity()

WsfSA_EntityPerception * WsfSA_Assess::BestTargetEntity ( double aSimTime)

This returns a pointer to the best target entity or nullptr if no such target exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::GetSAP().

◆ BestTargetGroup()

WsfSA_Group * WsfSA_Assess::BestTargetGroup ( double aSimTime)

This returns a pointer to the best group target or nullptr if no such target exists.

Parameters
aSimTimetime at which to get group

References WsfSA_Module::GetSAP().

◆ BestTargetMissile()

WsfSA_EntityPerception * WsfSA_Assess::BestTargetMissile ( double aSimTime)

This returns a pointer to the best missile target or nullptr if no such target exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::mDataPtr.

◆ CalcDeltaAltitude() [1/2]

double WsfSA_Assess::CalcDeltaAltitude ( const WsfPlatform & aSourcePlatform,
const WsfPlatform & aTargetPlatform ) const

This returns the difference in altitude the specified source platform and the target platform.

Positive delta means the target platform is higher than the source platform.

Parameters
aSourcePlatformsource platform to calculate delta altitude from
aTargetPlatformtarget platform to calculate delta altitude to

Referenced by CalcDeltaAltitude(), and UpdateEngagementsData().

◆ CalcDeltaAltitude() [2/2]

double WsfSA_Assess::CalcDeltaAltitude ( const WsfPlatform & aTargetPlatform) const

This returns the difference in altitude between the current platform and the specified target platform.

Positive delta means the target platform is higher than the source platform.

Parameters
aTargetPlatformtarget platform to calculate delta altitude to

References CalcDeltaAltitude(), and WsfSA_Module::GetPlatform().

◆ CalcSlantRange() [1/2]

double WsfSA_Assess::CalcSlantRange ( const WsfPlatform & aSourcePlatform,
const WsfPlatform & aTargetPlatform ) const

This returns the range between the specified source platform and the target platform.

Parameters
aSourcePlatformsource platform to calculate range from
aTargetPlatformtarget platform to calculate range to

Referenced by CalcSlantRange(), ExpectedNormalizedDetectionRangeAgainstTarget(), ExpectedNormalizedWezRangeAgainstTarget(), and UpdateEngagementsData().

◆ CalcSlantRange() [2/2]

double WsfSA_Assess::CalcSlantRange ( const WsfPlatform & aTargetPlatform) const

This returns the range between the current platform and the specified target platform.

Parameters
aTargetPlatformtarget platform to calculate range to.

References CalcSlantRange(), and WsfSA_Module::GetPlatform().

◆ CalculateDefensiveness()

double WsfSA_Assess::CalculateDefensiveness ( double aSimTime,
WsfSA_EntityPerception * aThreatItem )
protected

Calculate the defensiveness caused by the specified threat SA entity to the current platform.

Defensiveness is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItemthreat SA entity to evaluate

References WsfScriptContext::ExecuteScript(), WsfSA_EntityPerception::GetDefensiveness(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), WsfScriptContext::GetTypes(), and WsfSA_EntityPerception::SetDefensiveness().

Referenced by AssessBogiesBandits(), UpdateEngagementsData(), and WsfSA_Assess().

◆ CalculateMissileTargetValue()

double WsfSA_Assess::CalculateMissileTargetValue ( double aSimTime,
WsfSA_EntityPerception * aTargetItem,
bool aIsBogie )
protected

Calculate the target value presented by the specified missile SA entity to the current platform Target value is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aTargetItemtarget SA entity to evaluate
aIsBogietrue if entity is a bogie (this adjusts the target value scoring)

References ExecuteCalculateMissileTargetValue(), WsfSA_EntityPerception::GetAltitude_ft(), WsfSA_PerceivedItem::GetAltitudeValid(), WsfSA_EntityPerception::GetIsMissile(), WsfSA_EntityPerception::GetLat_deg(), WsfSA_EntityPerception::GetLon_deg(), WsfSA_Module::GetPlatform(), WsfSA_PerceivedItem::GetTargetValue(), OffBoresightAngleForTarget(), and WsfSA_PerceivedItem::SetTargetValue().

Referenced by CalculateTargetValue(), and WsfSA_Assess().

◆ CalculateMissileThreatLevel()

double WsfSA_Assess::CalculateMissileThreatLevel ( double aSimTime,
WsfSA_EntityPerception * aThreatItem,
bool aIsBogie )
protected

Calculate the threat level posed by the specified missile threat SA entity to the current platform.

Threat level is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItemthreat SA entity to evaluate
aIsBogietrue if entity is a bogie (this adjusts the threat level scoring)

References ExecuteCalculateMissileThreatLevel(), WsfSA_EntityPerception::GetAltitude_ft(), WsfSA_PerceivedItem::GetAltitudeValid(), WsfSA_EntityPerception::GetIsMissile(), WsfSA_EntityPerception::GetLat_deg(), WsfSA_EntityPerception::GetLon_deg(), WsfSA_Module::GetPlatform(), WsfSA_PerceivedItem::GetThreatLevel(), OffBoresightAngleForTarget(), and WsfSA_PerceivedItem::SetThreatLevel().

Referenced by CalculateThreatLevel(), and WsfSA_Assess().

◆ CalculateOverallDefensiveness()

void WsfSA_Assess::CalculateOverallDefensiveness ( double aSimTime)
protected

Calculate the overall defensiveness level for the current platform Defensiveness is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References ExecuteCalculateDefensiveness().

Referenced by UpdatePrioritizedThreatsAndTargetsData(), and WsfSA_Assess().

◆ CalculateOverallRisks()

void WsfSA_Assess::CalculateOverallRisks ( double aSimTime)
protected

Calculate the overall risk, self-risk, flight-risk, package-risk, and mission-risk level for the current platform.

Risks are normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References ExecuteCalculateFlightRisk(), ExecuteCalculateMissionRisk(), ExecuteCalculatePackageRisk(), ExecuteCalculateRisk(), and ExecuteCalculateSelfRisk().

Referenced by UpdatePrioritizedThreatsAndTargetsData(), and WsfSA_Assess().

◆ CalculateOverallUrgency()

void WsfSA_Assess::CalculateOverallUrgency ( double aSimTime)
protected

Calculate the overall sense of urgency for the current platform Urgency is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References ExecuteCalculateUrgency().

Referenced by UpdatePrioritizedThreatsAndTargetsData(), and WsfSA_Assess().

◆ CalculatePrioritizedTargets()

void WsfSA_Assess::CalculatePrioritizedTargets ( double aSimTime)

◆ CalculatePrioritizedThreats()

◆ CalculateRisk()

double WsfSA_Assess::CalculateRisk ( double aSimTime,
WsfSA_EntityPerception * aThreatItem )
protected

Calculate the risk posed by the specified threat SA entity to the current platform Risk is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItemthreat SA entity to evaluate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_EntityPerception::GetRisk(), WsfSA_Module::GetScriptContext(), WsfScriptContext::GetTypes(), and WsfSA_EntityPerception::SetRisk().

Referenced by AssessBogiesBandits(), UpdateEngagementsData(), and WsfSA_Assess().

◆ CalculateTargetValue()

double WsfSA_Assess::CalculateTargetValue ( double aSimTime,
WsfSA_PerceivedItem * aTargetItem,
bool aIsBogie )
protected

◆ CalculateThreatLevel()

double WsfSA_Assess::CalculateThreatLevel ( double aSimTime,
WsfSA_PerceivedItem * aThreatItem,
bool aIsBogie )
protected

◆ CalculateTrackedPlatforms()

void WsfSA_Assess::CalculateTrackedPlatforms ( double aSimTime)
protected

Calculate the currently tracked platforms for the current platform.

Parameters
aSimTimesim time at which to calculate

References WsfSA_Module::GetSAP(), WsfSA_Processor::GetTrackManagerList(), and WsfSA_Processor::PerceptionMasterTrackProcessor().

Referenced by UpdateEngagementsData(), and WsfSA_Assess().

◆ CalculateUrgency()

double WsfSA_Assess::CalculateUrgency ( double aSimTime,
WsfSA_EntityPerception * aThreatItem )
protected

Calculate the urgency created by the specified threat SA entity to the current platform Urgency is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItemthreat SA entity to evaluate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), WsfScriptContext::GetTypes(), WsfSA_EntityPerception::GetUrgency(), and WsfSA_EntityPerception::SetUrgency().

Referenced by AssessBogiesBandits(), UpdateEngagementsData(), and WsfSA_Assess().

◆ CompareScore()

bool WsfSA_Assess::CompareScore ( const PlatormScorePairing & first,
const PlatormScorePairing & second )
staticprotected

◆ CurrentlyTrackedPlatformIds()

std::vector< std::size_t > WsfSA_Assess::CurrentlyTrackedPlatformIds ( ) const
inline

This returns a list of platform ids that are currently being tracked.

◆ CurrentlyTrackedPlatformNames()

std::vector< std::string > WsfSA_Assess::CurrentlyTrackedPlatformNames ( ) const
inline

This returns a list of platform names that are currently being tracked.

Referenced by WsfSA_Processor::DebugTestOutput().

◆ Defensiveness()

double WsfSA_Assess::Defensiveness ( ) const
inline

This returns a normalized defensiveness level, ranging from 0 (fully non-defensive) to 1 (fully defensive).

Referenced by WsfSA_Processor::DebugTestOutput().

◆ ExecuteCalculateDefensiveness()

double WsfSA_Assess::ExecuteCalculateDefensiveness ( double aSimTime)
protected

This will call an AFSIM script function "CalculateDefensiveness".

It returns the value, or if the function is not present, it will return zero. Defensiveness is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallDefensiveness().

◆ ExecuteCalculateEntityTargetValue()

double WsfSA_Assess::ExecuteCalculateEntityTargetValue ( double aSimTime,
WsfSA_EntityPerception * aTargetItem,
bool aIsBogie )
protected

This will call an AFSIM script function "CalculateTargetValue".

It returns the value, or if the function is not present, it will return zero. Target value is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aTargetItementity being evaluated
aIsBogietrue if this entity is a bogie

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), and WsfScriptContext::GetTypes().

Referenced by CalculateTargetValue().

◆ ExecuteCalculateEntityThreatLevel()

double WsfSA_Assess::ExecuteCalculateEntityThreatLevel ( double aSimTime,
WsfSA_EntityPerception * aThreatItem,
bool aIsBogie )
protected

This will call an AFSIM script function "CalculateThreatLevel".

It returns the value, or if the function is not present, it will return zero. Threat level is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItementity being evaluated
aIsBogietrue if this entity is a bogie

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), and WsfScriptContext::GetTypes().

Referenced by CalculateThreatLevel().

◆ ExecuteCalculateFlightRisk()

double WsfSA_Assess::ExecuteCalculateFlightRisk ( double aSimTime)
protected

This will call an AFSIM script function "CalculateFlightRisk".

It returns the value, or if the function is not present, it will return zero. Flight risk is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallRisks().

◆ ExecuteCalculateGroupTargetValue()

double WsfSA_Assess::ExecuteCalculateGroupTargetValue ( double aSimTime,
WsfSA_Group * aTargetItem,
bool aIsBogie )
protected

This will call an AFSIM script function "CalculateGroupTargetValue".

It returns the value, or if the function is not present, it will return zero. Target value is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aTargetItementity being evaluated
aIsBogietrue if this entity is a bogie

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), and WsfScriptContext::GetTypes().

Referenced by CalculateTargetValue().

◆ ExecuteCalculateGroupThreatLevel()

double WsfSA_Assess::ExecuteCalculateGroupThreatLevel ( double aSimTime,
WsfSA_Group * aThreatItem,
bool aIsBogie )
protected

This will call an AFSIM script function "CalculateGroupThreatLevel".

It returns the value, or if the function is not present, it will return zero. Threat level is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItementity being evaluated
aIsBogietrue if this entity is a bogie

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), and WsfScriptContext::GetTypes().

Referenced by CalculateThreatLevel().

◆ ExecuteCalculateMissileTargetValue()

double WsfSA_Assess::ExecuteCalculateMissileTargetValue ( double aSimTime,
WsfSA_EntityPerception * aTargetItem,
bool aIsBogie )
protected

This will call an AFSIM script function "CalculateMissileTargetValue".

It returns the value, or if the function is not present, it will return zero. Target value is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aTargetItementity being evaluated
aIsBogietrue if this entity is a bogie

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), and WsfScriptContext::GetTypes().

Referenced by CalculateMissileTargetValue().

◆ ExecuteCalculateMissileThreatLevel()

double WsfSA_Assess::ExecuteCalculateMissileThreatLevel ( double aSimTime,
WsfSA_EntityPerception * aThreatItem,
bool aIsBogie )
protected

This will call an AFSIM script function "CalculateMissileThreatLevel".

It returns the value, or if the function is not present, it will return zero. Threat level is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate
aThreatItementity being evaluated
aIsBogietrue if this entity is a bogie

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetScriptContext(), and WsfScriptContext::GetTypes().

Referenced by CalculateMissileThreatLevel().

◆ ExecuteCalculateMissionRisk()

double WsfSA_Assess::ExecuteCalculateMissionRisk ( double aSimTime)
protected

This will call an AFSIM script function "CalculateMissionRisk".

It returns the value, or if the function is not present, it will return zero. Mission risk is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallRisks().

◆ ExecuteCalculatePackageRisk()

double WsfSA_Assess::ExecuteCalculatePackageRisk ( double aSimTime)
protected

This will call an AFSIM script function "CalculatePackageRisk".

It returns the value, or if the function is not present, it will return zero. Package risk is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallRisks().

◆ ExecuteCalculateRisk()

double WsfSA_Assess::ExecuteCalculateRisk ( double aSimTime)
protected

This will call an AFSIM script function "CalculateRisk".

It returns the value, or if the function is not present, it will return zero. Risk is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallRisks().

◆ ExecuteCalculateSelfRisk()

double WsfSA_Assess::ExecuteCalculateSelfRisk ( double aSimTime)
protected

This will call an AFSIM script function "CalculateSelfRisk".

It returns the value, or if the function is not present, it will return zero. Self risk is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallRisks().

◆ ExecuteCalculateUrgency()

double WsfSA_Assess::ExecuteCalculateUrgency ( double aSimTime)
protected

This will call an AFSIM script function "CalculateUrgency".

It returns the value, or if the function is not present, it will return zero. Urgency is normalized, and limited to 0.0 to 1.0.

Parameters
aSimTimesim time at which to calculate

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by CalculateOverallUrgency().

◆ ExecuteCalcWeaponSupport()

bool WsfSA_Assess::ExecuteCalcWeaponSupport ( double aSimTime)
protected

This will call an AFSIM script function "CalcWeaponSupport".

It returns the value, or if the function is not present, it will return false. *

References WsfScriptContext::ExecuteScript(), WsfObject::GetName(), WsfSA_Module::GetPlatform(), and WsfSA_Module::GetScriptContext().

Referenced by UpdateWeaponSupport().

◆ ExpectedDetectionRange()

double WsfSA_Assess::ExpectedDetectionRange ( const WsfPlatform & aSourePlatform,
const WsfPlatform & aTargetPlatform ) const

This returns the expected detection range (in meters) where the current platform could detect the target platform, with the current relative aspects and states.

This will consider all radars and IR sensors, and select the sensor with the best range. If a sensor is turned off, it will not be considered. The function will return zero if no viable sensors are available and operating.

Parameters
aSourePlatformplatform trying to perform the detection.
aTargetPlatformtarget platform being detected.

Referenced by ExpectedDetectionRangeAgainstTarget(), and ExpectedDetectionRangeByTarget().

◆ ExpectedDetectionRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedDetectionRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected detection range (in meters) where the current platform could detect the target platform, with the current relative aspects and states.

This will consider all radars and IR sensors, and select the sensor with the best range. If a sensor is turned off, it will not be considered. The function will return zero if no viable sensors are available and operating.

Parameters
aTargetPlatformtarget platform to get the detection range from the current platform.

References ExpectedDetectionRange(), and WsfSA_Module::GetPlatform().

Referenced by ExpectedDetectionRangeAgainstTarget(), ExpectedNormalizedDetectionRangeAgainstTarget(), and UpdateEngagementsData().

◆ ExpectedDetectionRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedDetectionRangeAgainstTarget ( size_t aIndex) const

This returns the expected detection range (in meters) where the current platform could detect the target platform, with the current relative aspects and states.

This will consider all radars and IR sensors, and select the sensor with the best range. If a sensor is turned off, it will not be considered. The function will return zero if no viable sensors are available and operating.

Parameters
aIndexindex of the target platform to get the detection range from the current platform.

References ExpectedDetectionRangeAgainstTarget(), WsfSimulation::GetPlatformByIndex(), and WsfSA_Module::GetSimulation().

◆ ExpectedDetectionRangeByTarget() [1/2]

double WsfSA_Assess::ExpectedDetectionRangeByTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected detection range (in meters) where the target platform could detect the current platform, with the current relative aspects and states.

This will consider all radars and IR sensors, and select the sensor with the best range. If a sensor is turned off, it will not be considered. The function will return zero if no viable sensors are available and operating.

Parameters
aTargetPlatformtarget platform to get the detection range to the current platform.

References ExpectedDetectionRange(), and WsfSA_Module::GetPlatform().

Referenced by ExpectedDetectionRangeByTarget().

◆ ExpectedDetectionRangeByTarget() [2/2]

double WsfSA_Assess::ExpectedDetectionRangeByTarget ( size_t aIndex) const

This returns the expected detection range (in meters) where the target platform could detect the current platform, with the current relative aspects and states.

This will consider all radars and IR sensors, and select the sensor with the best range. If a sensor is turned off, it will not be considered. The function will return zero if no viable sensors are available and operating.

Parameters
aIndexindex of the target platform to get the detection range to the current platform.

References ExpectedDetectionRangeByTarget(), WsfSimulation::GetPlatformByIndex(), and WsfSA_Module::GetSimulation().

◆ ExpectedMaximumEngagementRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedMaximumEngagementRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected maximum engagement range for the current platform against the given target platform.

Parameters
aTargetPlatformthe target platform to calculate maximum engagement range against.

Referenced by ExpectedMaximumEngagementRangeAgainstTarget(), and UpdateEngagementsData().

◆ ExpectedMaximumEngagementRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedMaximumEngagementRangeAgainstTarget ( size_t aIndex) const

This returns the expected maximum engagement range for the current platform against the given target platform.

Parameters
aIndexindex of the target platform to calculate maximum engagement range against.

References ExpectedMaximumEngagementRangeAgainstTarget(), and WsfSA_Module::mSA_ProcessorPtr.

◆ ExpectedMinimumEngagementRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedMinimumEngagementRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected minimum engagement range for the current platform against the given target platform.

Parameters
aTargetPlatformthe target platform to calculate minimum engagement range against.

Referenced by ExpectedMinimumEngagementRangeAgainstTarget(), and UpdateEngagementsData().

◆ ExpectedMinimumEngagementRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedMinimumEngagementRangeAgainstTarget ( size_t aIndex) const

This returns the expected minimum engagement range for the current platform against the given target platform.

Parameters
aIndexindex of the target platform to calculate minimum engagement range against.

References ExpectedMinimumEngagementRangeAgainstTarget(), and WsfSA_Module::mSA_ProcessorPtr.

◆ ExpectedNoEscapeRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedNoEscapeRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected "no escape" engagement range for the current platform against the given target platform.

Parameters
aTargetPlatformthe target platform to calculate "no escape" engagement range against.

Referenced by ExpectedNoEscapeRangeAgainstTarget(), and UpdateEngagementsData().

◆ ExpectedNoEscapeRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedNoEscapeRangeAgainstTarget ( size_t aIndex) const

This returns the expected "no escape" engagement range for the current platform against the given target platform.

Parameters
aIndexindex of the target platform to calculate "no escape" engagement range against.

References ExpectedNoEscapeRangeAgainstTarget(), and WsfSA_Module::mSA_ProcessorPtr.

◆ ExpectedNormalizedDetectionRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedNormalizedDetectionRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected detection range against a given target platform as a normalized value between 0 and 1.

Parameters
aTargetPlatformtarget platform to get the normalized detection range for.

References CalcSlantRange(), ExpectedDetectionRangeAgainstTarget(), and WsfSA_Module::GetPlatform().

Referenced by ExpectedNormalizedDetectionRangeAgainstTarget().

◆ ExpectedNormalizedDetectionRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedNormalizedDetectionRangeAgainstTarget ( size_t aIndex) const

This returns the expected detection range against a given target platform as a normalized value between 0 and 1.

Parameters
aIndexindex of the target platform to get the normalized detection range for.

References ExpectedNormalizedDetectionRangeAgainstTarget(), WsfSimulation::GetPlatformByIndex(), and WsfSA_Module::GetSimulation().

◆ ExpectedNormalizedWezRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedNormalizedWezRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected WEZ range against a given target platform as a normalized value between 0 and 1.

Parameters
aTargetPlatformtarget platform to get the normalized WEZ range to the current platform.

References CalcSlantRange(), ExpectedWezRangeAgainstTarget(), and WsfSA_Module::GetPlatform().

Referenced by ExpectedNormalizedWezRangeAgainstTarget().

◆ ExpectedNormalizedWezRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedNormalizedWezRangeAgainstTarget ( size_t aIndex) const

This returns the expected WEZ range against a given target platform as a normalized value between 0 and 1.

Parameters
aIndexindex of the target platform to get the normalized WEZ range to the current platform.

References ExpectedNormalizedWezRangeAgainstTarget(), WsfSimulation::GetPlatformByIndex(), and WsfSA_Module::GetSimulation().

◆ ExpectedWezRangeAgainstTarget() [1/2]

double WsfSA_Assess::ExpectedWezRangeAgainstTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected WEZ range for the current platform against the target platform, with the current relative aspects and states.

The WEZ is for the currently selected weapon.

Parameters
aTargetPlatformtarget platform to get the WEZ range to the current platform.

Referenced by ExpectedNormalizedWezRangeAgainstTarget(), ExpectedWezRangeAgainstTarget(), and UpdateEngagementsData().

◆ ExpectedWezRangeAgainstTarget() [2/2]

double WsfSA_Assess::ExpectedWezRangeAgainstTarget ( size_t aIndex) const

This returns the expected WEZ range for the current platform against the target platform, with the current relative aspects and states.

The WEZ is for the currently selected weapon.

Parameters
aIndexindex of the target platform to get the WEZ range to the current platform.

References ExpectedWezRangeAgainstTarget(), and WsfSA_Module::mSA_ProcessorPtr.

◆ ExpectedWezRangeByTarget() [1/2]

double WsfSA_Assess::ExpectedWezRangeByTarget ( const WsfPlatform & aTargetPlatform) const

This returns the expected WEZ range for the target platform against the current platform, with the current relative aspects and states.

The WEZ is for the currently selected weapon.

Parameters
aTargetPlatformtarget platform to get the WEZ range from the current platform.

References WsfSA_Module::GetPlatform().

Referenced by ExpectedWezRangeByTarget().

◆ ExpectedWezRangeByTarget() [2/2]

double WsfSA_Assess::ExpectedWezRangeByTarget ( size_t aIndex) const

This returns the expected WEZ range for the target platform against the current platform, with the current relative aspects and states.

The WEZ is for the currently selected weapon.

Parameters
aIndexindex of the target platform to get the WEZ range from the current platform.

References ExpectedWezRangeByTarget(), and WsfSA_Module::mSA_ProcessorPtr.

◆ FlightRisk()

double WsfSA_Assess::FlightRisk ( ) const
inline

This returns a normalized flight-risk level, ranging from 0 (no risk) to 1 (maximum risk).

Referenced by WsfSA_Processor::DebugTestOutput().

◆ FocusedGroups()

const std::list< WsfSA_Group * > & WsfSA_Assess::FocusedGroups ( ) const
inline

This returns a list of WsfSA_Groups that are focused.

◆ GetCornerSpeed_KCAS()

double WsfSA_Assess::GetCornerSpeed_KCAS ( ) const
inline

A placeholder function that, in the future, will return the minimum speed required to reach the platform's maximum G Load.

◆ GetGroup()

WsfSA_Group * WsfSA_Assess::GetGroup ( const std::string & aName) const

This returns a pointer to the group with the specified name or null, if no group exists.

Parameters
aNamename of the desired group.

References WsfSA_Module::GetSAP().

◆ GetPerceivedTrackedPlatformWithTarget()

WsfLocalTrack * WsfSA_Assess::GetPerceivedTrackedPlatformWithTarget ( size_t aTgtPlatformIndex)
protected

This returns a pointer to the first track containing the specified target platform index, or returns null.

Note that this uses the perceived master track processor if available, otherwise it uses the master track processor.

Parameters
aTgtPlatformIndextarget platform index to consider

References WsfSA_Processor::GetPerceptionMasterTrackProcessorTrackList(), WsfSA_Module::GetPlatform(), WsfSA_Module::GetSAP(), WsfTrack::GetTargetIndex(), WsfTrackListT< T >::GetTrackCount(), WsfTrackListT< T >::GetTrackEntry(), WsfTrackManager::GetTrackList(), and WsfPlatform::GetTrackManager().

Referenced by UpdateEngagementsData(), and WsfSA_Assess().

◆ GetPrioritizedAircraftTargetEntities() [1/2]

std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedAircraftTargetEntities ( )
inline

This returns a list of prioritized aircraft target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedAircraftTargetEntities() [2/2]

const std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedAircraftTargetEntities ( ) const
inline

This returns a const list of prioritized aircraft target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedAircraftThreatEntities() [1/2]

std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedAircraftThreatEntities ( )
inline

This returns a list of prioritized aircraft threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedAircraftThreatEntities() [2/2]

const std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedAircraftThreatEntities ( ) const
inline

This returns a const list of prioritized aircraft threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedMissileTargetEntities() [1/2]

std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedMissileTargetEntities ( )
inline

This returns a list of prioritized missile target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedMissileTargetEntities() [2/2]

const std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedMissileTargetEntities ( ) const
inline

This returns a const list of prioritized missile target entity perceptions, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedMissileThreatEntities() [1/2]

std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedMissileThreatEntities ( )
inline

This returns a list of prioritized missile threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedMissileThreatEntities() [2/2]

const std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedMissileThreatEntities ( ) const
inline

This returns a const list of prioritized missile threat entity perceptions, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedTargetEntities() [1/2]

std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedTargetEntities ( )
inline

This returns a list of prioritized target perceived entities, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedTargetEntities() [2/2]

const std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedTargetEntities ( ) const
inline

This returns a const list of prioritized target perceived entities, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedTargetGroups() [1/2]

std::list< UtWeakReference< WsfSA_Group > > & WsfSA_Assess::GetPrioritizedTargetGroups ( )
inline

This returns a list of prioritized target unfocused groups, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedTargetGroups() [2/2]

const std::list< UtWeakReference< WsfSA_Group > > & WsfSA_Assess::GetPrioritizedTargetGroups ( ) const
inline

This returns a const list of prioritized target unfocused groups, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedTargetItems() [1/2]

std::list< UtWeakReference< WsfSA_PerceivedItem > > & WsfSA_Assess::GetPrioritizedTargetItems ( )
inline

This returns a list of prioritized target perceived items, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedTargetItems() [2/2]

const std::list< UtWeakReference< WsfSA_PerceivedItem > > & WsfSA_Assess::GetPrioritizedTargetItems ( ) const
inline

This returns a const list of prioritized target perceived items, beginning with the highest priority target and working down to the lowest priority target.

◆ GetPrioritizedThreatEntities() [1/2]

std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedThreatEntities ( )
inline

This returns a list of prioritized threat perceived entities, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedThreatEntities() [2/2]

const std::list< UtWeakReference< WsfSA_EntityPerception > > & WsfSA_Assess::GetPrioritizedThreatEntities ( ) const
inline

This returns a const list of prioritized threat perceived entities, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedThreatGroups() [1/2]

std::list< UtWeakReference< WsfSA_Group > > & WsfSA_Assess::GetPrioritizedThreatGroups ( )
inline

This returns a list of prioritized threat unfocused groups, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedThreatGroups() [2/2]

const std::list< UtWeakReference< WsfSA_Group > > & WsfSA_Assess::GetPrioritizedThreatGroups ( ) const
inline

This returns a const list of prioritized threat unfocused groups, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedThreatItems() [1/2]

std::list< UtWeakReference< WsfSA_PerceivedItem > > & WsfSA_Assess::GetPrioritizedThreatItems ( )
inline

This returns a list of prioritized threat perceived items, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetPrioritizedThreatItems() [2/2]

const std::list< UtWeakReference< WsfSA_PerceivedItem > > & WsfSA_Assess::GetPrioritizedThreatItems ( ) const
inline

This returns a const list of prioritized threat perceived items, beginning with the highest priority threat and working down to the lowest priority threat.

◆ GetSelectedWeapon()

std::string WsfSA_Assess::GetSelectedWeapon ( )
inline

This returns the name of the current selected weapon.

It will return an empty string if no weapon is selected.

Referenced by WsfSA_Processor::DebugTestOutput().

◆ GetWeaponBayOpen()

bool WsfSA_Assess::GetWeaponBayOpen ( )
inline

This returns the state of the weapon bay doors.

It will return true if the doors are open.

◆ HighestThreat()

WsfSA_PerceivedItem * WsfSA_Assess::HighestThreat ( double aSimTime)

This returns a pointer to the highest threat or nullptr if no such threat exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::GetSAP(), and WsfSA_Module::mDataPtr.

◆ HighestThreatAircraft()

WsfSA_EntityPerception * WsfSA_Assess::HighestThreatAircraft ( double aSimTime)

This returns a pointer to the highest aircraft threat or nullptr if no such threat exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::mDataPtr.

◆ HighestThreatEntity()

WsfSA_EntityPerception * WsfSA_Assess::HighestThreatEntity ( double aSimTime)

This returns a pointer to the highest entity threat or nullptr if no such threat exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::GetSAP().

◆ HighestThreatGroup()

WsfSA_Group * WsfSA_Assess::HighestThreatGroup ( double aSimTime)

This returns a pointer to the highest group threat or nullptr if no such threat exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::GetSAP().

◆ HighestThreatMissile()

WsfSA_EntityPerception * WsfSA_Assess::HighestThreatMissile ( double aSimTime)

This returns a pointer to the highest missile threat or nullptr if no such threat exists.

Parameters
aSimTimetime at which to get entity

References WsfSA_Module::mDataPtr.

◆ IgnoreBogiesAsTargets()

bool WsfSA_Assess::IgnoreBogiesAsTargets ( ) const
inline

This returns true if bogies should be ignored as targets.

◆ IgnoreBogiesAsThreats()

bool WsfSA_Assess::IgnoreBogiesAsThreats ( ) const
inline

This returns true if bogies should be ignored as threats.

◆ IgnoreMissilesAsTargets()

bool WsfSA_Assess::IgnoreMissilesAsTargets ( ) const
inline

This returns true if missiles should be ignored as targets.

◆ IgnoreMissilesAsThreats()

bool WsfSA_Assess::IgnoreMissilesAsThreats ( ) const
inline

This returns true if missiles should be ignored as threats.

◆ Initialize()

void WsfSA_Assess::Initialize ( double aSimTime)

Performs initialization during creation.

This should be called from the SA Processor's Initialize() function.

Parameters
aSimTimesim time when processing

References WsfScriptContext::FindScript(), WsfSA_Processor::GetData(), WsfSA_Module::GetSAP(), WsfScriptProcessor::GetScriptContext(), ok, WsfSA_Processor::Perceive(), and WsfScriptContext::ValidateScript().

◆ IsCurrentlyBeingTracked()

bool WsfSA_Assess::IsCurrentlyBeingTracked ( size_t aPlatformId) const

This returns true if the specified platform id is in the list of platforms that are currently being tracked.

◆ MaxPrioritizedTargets()

unsigned int WsfSA_Assess::MaxPrioritizedTargets ( )
inline

Return the max prioritized target count the platform can handle.

◆ MaxPrioritizedThreats()

unsigned int WsfSA_Assess::MaxPrioritizedThreats ( )
inline

Return the max prioritized threat count the platform can handle.

◆ MissionRisk()

double WsfSA_Assess::MissionRisk ( ) const
inline

This returns a normalized mission-risk level, ranging from 0 (no risk) to 1 (maximum risk).

Referenced by WsfSA_Processor::DebugTestOutput().

◆ MissionTask()

std::string WsfSA_Assess::MissionTask ( ) const
inline

This returns a string indicating the primary mission task.

Referenced by WsfSA_Processor::DebugTestOutput().

◆ OffBoresightAngleForTarget() [1/3]

double WsfSA_Assess::OffBoresightAngleForTarget ( const double aLocationWCS[3]) const

This returns the off-boresight angle for the target location relative to the platform's x-axis.

It is a positive angle between zero (directly in front of the nose) to Pi (directly behind the tail). The angle is measured in radians.

Parameters
aLocationWCSlocation to calculate 3d aspect-angle towards.

References WsfSA_Module::GetPlatform().

◆ OffBoresightAngleForTarget() [2/3]

double WsfSA_Assess::OffBoresightAngleForTarget ( const WsfPlatform & aPlatform,
const WsfPlatform & aTargetPlatform )
static

This returns the off-boresight angle for the target relative to the platform's x-axis.

It is a positive angle between zero (directly in front of the nose) to Pi (directly behind the tail). The angle is measured in radians.

Parameters
aPlatformplatform to calculate off-boresight aspect-angle from.
aTargetPlatformplatform to calculate angle towards.

Referenced by CalculateMissileTargetValue(), CalculateMissileThreatLevel(), CalculateTargetValue(), CalculateThreatLevel(), and OffBoresightAngleForTarget().

◆ OffBoresightAngleForTarget() [3/3]

double WsfSA_Assess::OffBoresightAngleForTarget ( const WsfPlatform & aTargetPlatform) const

This returns the off-boresight angle for the target relative to the platform's x-axis.

It is a positive angle between zero (directly in front of the nose) to Pi (directly behind the tail). The angle is measured in radians.

Parameters
aTargetPlatformplatform to calculate 3d aspect-angle towards.

References WsfSA_Module::GetPlatform(), and OffBoresightAngleForTarget().

◆ operator=()

WsfSA_Assess & WsfSA_Assess::operator= ( const WsfSA_Assess & )
delete

References WsfSA_Assess().

◆ PackageRisk()

double WsfSA_Assess::PackageRisk ( ) const
inline

This returns a normalized package-risk level, ranging from 0 (no risk) to 1 (maximum risk).

Referenced by WsfSA_Processor::DebugTestOutput().

◆ PerceivedGroups()

const std::list< WsfSA_Group * > & WsfSA_Assess::PerceivedGroups ( ) const
inline

This returns a list of SA_PerceivedGroups that are currently perceived and assessed.

References WsfSA_Processor::GetData(), WsfSA_Module::GetSAP(), and WsfSA_Processor::PerceiveData::mCurrentlyPerceivedGroups.

Referenced by WsfSA_Processor::DebugTestOutput().

◆ PerceivedThreatItems()

std::vector< WsfSA_PerceivedItem * > WsfSA_Assess::PerceivedThreatItems ( double aSimTime)

Return a reference to the list of perceived items for the current platform at a given time.

Parameters
aSimTimeThe sim time at which to get the list of perceived bogies

References WsfSA_PerceivedItem::FRIENDLY, WsfSA_Processor::GetData(), WsfSA_Module::GetSAP(), WsfSA_Processor::PerceiveData::mPerceivedBandits, and WsfSA_PerceivedItem::NEUTRAL.

◆ PlatformIsCurrentlyBeingTracked()

bool WsfSA_Assess::PlatformIsCurrentlyBeingTracked ( size_t aTgtPlatformIndex) const
protected

This returns true if the specified target platform index is in the list of currently tracked platforms.

Parameters
aTgtPlatformIndextarget platform index to consider

Referenced by UpdateEngagementsData(), and WsfSA_Assess().

◆ PrioritizedTargetIds()

std::vector< size_t > WsfSA_Assess::PrioritizedTargetIds ( ) const
inline

This returns a list of prioritized target platform ids, beginning with the highest priority target and working down to the lowest priority target.

◆ PrioritizedTargetNames()

std::vector< std::string > WsfSA_Assess::PrioritizedTargetNames ( ) const
inline

This returns a list of prioritized target platform names, beginning with the highest priority target and working down to the lowest priority target.

Referenced by WsfSA_Processor::DebugTestOutput().

◆ PrioritizedThreatIds()

std::vector< size_t > WsfSA_Assess::PrioritizedThreatIds ( ) const
inline

This returns a list of prioritized threat platform ids, beginning with the highest priority threat and working down to the lowest priority threat.

◆ PrioritizedThreatNames()

std::vector< std::string > WsfSA_Assess::PrioritizedThreatNames ( ) const
inline

This returns a list of prioritized threat platform names, beginning with the highest priority threat and working down to the lowest priority threat.

Referenced by WsfSA_Processor::DebugTestOutput().

◆ ProcessInput()

◆ ResetMaxPrioritizedTargets()

void WsfSA_Assess::ResetMaxPrioritizedTargets ( )
inline

Set the max prioritized target to the value provided during initialization (default is 0 where not provided).

◆ ResetMaxPrioritizedThreats()

void WsfSA_Assess::ResetMaxPrioritizedThreats ( )
inline

Set the max prioritized target to the value provided during initialization (default is 0 where not provided).

◆ Risk()

double WsfSA_Assess::Risk ( ) const
inline

This returns a normalized risk level, ranging from 0 (no risk) to 1 (maximum risk).

Referenced by WsfSA_Processor::DebugTestOutput(), and UT_DEFINE_SCRIPT_METHOD().

◆ SelfRisk()

double WsfSA_Assess::SelfRisk ( ) const
inline

This returns a normalized self-risk level, ranging from 0 (no risk) to 1 (maximum risk).

Referenced by WsfSA_Processor::DebugTestOutput().

◆ SetMaxPrioritizedTargets()

void WsfSA_Assess::SetMaxPrioritizedTargets ( unsigned int aMax)
inline

Set the prioritized target maximum.

Parameters
aMaxnumber of targets a platform can prioritize (0 value means no limit)

◆ SetMaxPrioritizedThreats()

void WsfSA_Assess::SetMaxPrioritizedThreats ( unsigned int aMax)
inline

Set the prioritized threat maximum.

Parameters
aMaxnumber of threats a platform can prioritize (0 value means no limit)

◆ SetSelectedWeapon()

void WsfSA_Assess::SetSelectedWeapon ( const std::string & aSelectedWeapon)
inline

This sets the name of the current selected weapon.

If no weapon is selected, an empty string should be used.

◆ SetWeaponBayOpen()

void WsfSA_Assess::SetWeaponBayOpen ( bool aWeaponBayOpen)
inline

This sets the state of the weapon bay doors.

True indicates that the doors are open.

◆ SortedGroups()

void WsfSA_Assess::SortedGroups ( int aSortingEnum,
std::vector< WsfSA_Group * > & aGroups ) const

This returns all groups recognized by the SAP, sorted according to the given enumeration.

Parameters
aSortingEnumThe enumeration which describes how the list should be sorted.
aGroupsThe output variable. This should be supplied with an empty vector.

References WsfSA_Module::GetPlatform(), WsfSA_Module::mDataPtr, and WsfSA_GroupUtils::SortedGroups().

◆ SupportingWeapon()

bool WsfSA_Assess::SupportingWeapon ( ) const
inline

This returns true if at least one weapon is being supported.

◆ TryUpdateEngagements()

double WsfSA_Assess::TryUpdateEngagements ( double aSimTime)

Attempt to update engagement data at a sim time, and return an appropriate time for the next event update.

A cognitive delay is factored in.

Parameters
aSimTimesim time at which to attempt updating

References WsfSA_Processor::cENGAGEMENT_DATA, WsfSA_Module::GetSAP(), and UpdateEngagements().

◆ TryUpdatePrioritizedItemCalculation()

double WsfSA_Assess::TryUpdatePrioritizedItemCalculation ( double aSimTime)

Attempt to update prioritized threat and target calculations at a sim time, and return an appropriate time for the next event update.

A cognitive delay is factored in.

Parameters
aSimTimesim time at which to attempt updating

References WsfSA_Processor::cPRIORITIZED_ITEM_CALCULATION, WsfSA_Module::GetSAP(), and UpdatePrioritizedItemCalculation().

◆ TryUpdatePrioritizedItemData()

double WsfSA_Assess::TryUpdatePrioritizedItemData ( double aSimTime)

Attempt to update prioritized threat and target data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfSA_Processor::cPRIORITIZED_ITEM_DATA, WsfSA_Module::GetSAP(), and UpdatePrioritizedItemData().

◆ UnfocusedGroups()

const std::list< WsfSA_Group * > & WsfSA_Assess::UnfocusedGroups ( ) const
inline

This returns a list of WsfSA_Groups that are unfocused.

◆ UpdateEngagements()

void WsfSA_Assess::UpdateEngagements ( double aSimTime)

Update engagement data at a sim time, and return an appropriate time for the next event update.

A cognitive delay is factored in.

Parameters
aSimTimesim time at which to attempt updating

References WsfObserver::AirCombatSendEngagementSummaryData(), WsfSA_Processor::cENGAGEMENT_DATA, WsfSA_Module::GetPlatform(), WsfSA_Module::GetSAP(), WsfSA_Module::GetSimulation(), WsfSA_Processor::SetLastUpdateTime(), and UpdateEngagementsData().

Referenced by TryUpdateEngagements().

◆ UpdateEngagementsData()

void WsfSA_Assess::UpdateEngagementsData ( double aSimTime)

Update engagement data at a sim time, and return an appropriate time for the next event update.

A cognitive delay is factored in.

Parameters
aSimTimesim time at which to attempt updating

References WsfSA_Assess::AssessEngagementData::acceptableWez, WsfSA_Assess::AssessEngagementData::angleOff_deg, AngleOffTarget2D(), WsfSA_Assess::AssessEngagementData::aspectAngle_deg, AspectAngleForTarget2D(), CalcDeltaAltitude(), CalcSlantRange(), CalculateDefensiveness(), WsfSA_Processor::CalculateEmissions(), WsfSA_Processor::CalculateObservables(), CalculateRisk(), CalculateTargetValue(), CalculateThreatLevel(), CalculateTrackedPlatforms(), CalculateUrgency(), WsfTrack::cIFF_FOE, WsfTrack::cIFF_FRIEND, WsfTrack::cIFF_NEUTRAL, WsfSA_Assess::AssessEngagementData::currentDeltaAlt_ft, WsfSA_Assess::AssessEngagementData::currentRange_nm, WsfSA_Assess::AssessEngagementData::defensiveness, WsfSA_Assess::AssessEngagementData::detectionRange_nm, ExpectedDetectionRangeAgainstTarget(), ExpectedMaximumEngagementRangeAgainstTarget(), ExpectedMinimumEngagementRangeAgainstTarget(), ExpectedNoEscapeRangeAgainstTarget(), ExpectedWezRangeAgainstTarget(), WsfSA_Processor::GetFilteredPlatformIdList(), WsfTrack::GetIFF_Status(), WsfPlatform::GetIndex(), WsfObject::GetName(), GetPerceivedTrackedPlatformWithTarget(), WsfSA_Module::GetPlatform(), WsfSimulation::GetPlatformByIndex(), WsfSA_Module::GetSAP(), WsfPlatform::GetSide(), WsfSA_Module::GetSimulation(), WsfTrack::GetTargetIndex(), WsfTrack::GetTrackQuality(), WsfObject::GetType(), WsfTrack::IFF_StatusValid(), WsfTrack::IsFalseTarget(), PlatformIsCurrentlyBeingTracked(), WsfSA_Assess::AssessEngagementData::risk, WsfSA_Assess::AssessEngagementData::targetCID, WsfSA_Assess::AssessEngagementData::targetIndex, WsfSA_Assess::AssessEngagementData::targetName, WsfSA_Assess::AssessEngagementData::targetType, WsfSA_Assess::AssessEngagementData::targetValue, WsfSA_Assess::AssessEngagementData::tgtTracked, WsfSA_Assess::AssessEngagementData::threatLevel, WsfSA_Assess::AssessEngagementData::trackQuality, WsfSA_Assess::AssessEngagementData::urgency, WsfSA_Assess::AssessEngagementData::wezDesiredRange_nm, WsfSA_Assess::AssessEngagementData::wezMaximum_nm, WsfSA_Assess::AssessEngagementData::wezMinimum_nm, and WsfSA_Assess::AssessEngagementData::wezNoEscape_nm.

Referenced by UpdateEngagements().

◆ UpdateGroupFocusLists()

void WsfSA_Assess::UpdateGroupFocusLists ( )

Update mFocusedGroups and mUnfocusedGroups.

References WsfSA_Module::mDataPtr.

Referenced by WsfSA_Perceive::SetFocus(), and WsfSA_Perceive::UpdateGroupsData().

◆ UpdatePrioritizedItemCalculation()

void WsfSA_Assess::UpdatePrioritizedItemCalculation ( double aSimTime)

Update prioritized threat and target calculations at a sim time, and return an appropriate time for the next event update.

A cognitive delay is factored in.

Parameters
aSimTimesim time at which to attempt updating

References WsfSA_Processor::cPRIORITIZED_ITEM_CALCULATION, WsfSA_Module::GetSAP(), WsfSA_Processor::SetLastUpdateTime(), and UpdatePrioritizedThreatsAndTargetsData().

Referenced by TryUpdatePrioritizedItemCalculation().

◆ UpdatePrioritizedItemData()

void WsfSA_Assess::UpdatePrioritizedItemData ( double aSimTime)

Update prioritized threat and target data at a sim time, and return an appropriate time for the next event update.

Parameters
aSimTimesim time at which to attempt updating

References WsfObserver::AirCombatSendPrioritizedThreatsAndTargetsData(), WsfSA_Processor::cPRIORITIZED_ITEM_DATA, WsfSA_Module::GetPlatform(), WsfSA_Module::GetSAP(), WsfSA_Module::GetSimulation(), and WsfSA_Processor::SetLastUpdateTime().

Referenced by TryUpdatePrioritizedItemData().

◆ UpdatePrioritizedThreatsAndTargetsData()

void WsfSA_Assess::UpdatePrioritizedThreatsAndTargetsData ( double aSimTime)

Update prioritized threat and target data at a sim time, and return an appropriate time for the next event update.

A cognitive delay is factored in.

Parameters
aSimTimesim time at which to attempt updating

References CalculateOverallDefensiveness(), CalculateOverallRisks(), CalculateOverallUrgency(), CalculatePrioritizedTargets(), and CalculatePrioritizedThreats().

Referenced by UpdatePrioritizedItemCalculation().

◆ UpdateWeaponSupport()

void WsfSA_Assess::UpdateWeaponSupport ( double aSimTime)

This updates the weapon support parameters using an optional script function.

References ExecuteCalcWeaponSupport().

◆ Urgency()

double WsfSA_Assess::Urgency ( ) const
inline

This returns a normalized urgency level, ranging from 0 (no urgency) to 1 (maximum urgency).

Referenced by WsfSA_Processor::DebugTestOutput().

◆ WeaponBayDoorsOpen()

bool WsfSA_Assess::WeaponBayDoorsOpen ( ) const
inline

A placeholder function that, in the future, will return whether a platform's weapon bay doors are open.

◆ WsfSA_Processor

friend class WsfSA_Processor
friend

References WsfSA_Assess(), and WsfSA_Processor.

Referenced by WsfSA_Assess(), and WsfSA_Processor.


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved