WSF
WsfAirToAirLaunchComputer Class Reference

#include <WsfAirToAirLaunchComputer.hpp>

Inheritance diagram for WsfAirToAirLaunchComputer:
Collaboration diagram for WsfAirToAirLaunchComputer:

Classes

class  ATA_InterceptTable

Public Member Functions

 WsfAirToAirLaunchComputer (const UtAtmosphere &aAtmosphere)
WsfAirToAirLaunchComputeroperator= (const WsfAirToAirLaunchComputer &)=delete
 ~WsfAirToAirLaunchComputer () override=default
WsfLaunchComputerClone () const override
bool ProcessInput (UtInput &aInput) override
bool Initialize (double aSimTime, WsfWeapon *aWeaponPtr) override
bool ToolOnlyInitialize (double aSimTime)
double EstimatedTimeToIntercept (double aSimTime, const WsfTrack &aTrack, double aLaunchDelayTime) override
 Implementation of virtual base class method.
bool LookupResult (const WsfTrack &aTrack, double &aRmax, double &aRmaxTOF, double &aRne, double &aRneTOF, double &aRmin, double &aRminTOF)
bool LookupResult (double aShooterInAlt, double aShooterInMach, double aTargetInAlt, double aTargetInMach, double aTargetInAspect, double aTargetInLead, double &aShooterOutAlt, double &aShooterOutMach, double &aTargetOutAlt, double &aTargetOutMach, double &aTargetOutAspect, double &aTargetOutLead, double &aRmax, double &aRmaxTOF, double &aRne, double &aRneTOF, double &aRmin, double &aRminTOF)
ATA_InterceptTableGetTable ()
bool Test ()
 Function used by Weapon_Tools to test a newly generated object for correctness.
Public Member Functions inherited from WsfLaunchComputer
 WsfLaunchComputer ()
 WsfLaunchComputer (const WsfLaunchComputer &aSrc)
 Copy constructor.
 ~WsfLaunchComputer () override=default
WsfLaunchComputeroperator= (const WsfLaunchComputer &)=delete
WsfLaunchComputerClone () const override
const char * GetScriptClassName () const override
bool ProcessInput (UtInput &aInput) override
virtual void Update (double aSimTime)
WsfWeaponGetWeapon () const
 Return the weapon with which this launch computer is associated.
WsfPlatformGetPlatform () const
 Return the platform with which this launch computer is associated.
WsfSimulationGetSimulation () const
void SetMaximumDeltaAltitude (double aMaxDeltaAltitude)
void SetMinimumDeltaAltitude (double aMinDeltaAltitude)
void SetMaximumClosingSpeed (double aMaxClosingSpeed)
void SetMaximumOpeningSpeed (double aMaxOpeningSpeed)
void SetMinimumClosingSpeed (double aMinClosingSpeed)
void SetMinimumOpeningSpeed (double aMinOpeningSpeed)
void SetMaximumSlantRange (double aMaxRange)
void SetMinimumSlantRange (double aMinRange)
void SetMaximumOffBoresight (double aMaxAngle)
void SetMaximumTimeOfFlight (double aMaxTOF)
void SetThrustDuration (double aThrustTime)
void SetCoastDuration (double aCoastTime)
void SetBurnoutSpeed (double aBurnoutSpeed)
void SetMinTerminalSpeed (double aMinTerminalSpeed)
bool ComputerGenerationMode () const
void SetComputerGenerationMode (bool aComputerGenerationMode)
void CopyResultsToTrack (WsfTrack &aTrack)
bool HaveResultsFor (const WsfTrackId &aTrackId) const
bool HaveResultsFor (double aSimTime, const WsfTrackId &aTrackId, double &aTimeToIntercept) const
bool LaunchTimeIsValid () const
bool LauncherBearingIsValid () const
bool LauncherElevationIsValid () const
bool LoftAngleIsValid () const
bool BurnTimeIsValid () const
bool TimeOfFlightIsValid () const
bool InterceptTimeIsValid () const
bool InterceptPointIsValid () const
bool TargetImpactTimeIsValid () const
bool TargetImpactPointIsValid () const
bool EndTimeIsValid () const
bool EndPointIsValid () const
double GetLaunchTime () const
double GetLauncherBearing () const
double GetLauncherElevation () const
double GetLoftAngle () const
double GetBurnTime () const
double GetTimeOfFlight () const
double GetInterceptTime () const
const WsfGeoPointGetInterceptPoint () const
double GetTargetImpactTime () const
const WsfGeoPointGetTargetImpactPoint () const
double GetEndTime () const
const WsfGeoPointGetEndPoint () const
void SetInterceptTime (double aInterceptTime)
void SetInterceptPoint (const WsfGeoPoint &aInterceptPoint)
void SetInterceptPointWCS (const double aLocationWCS[])
void SetLaunchTime (double aLaunchTime)
void SetTimeOfFlight (double aTimeOfFlight)
void SetTargetImpactTime (double aImpactTime)
void SetLoftAngle (double aLoftAngle)
void SetBurnTime (double aBurnTime)
void SetLauncherBearing (double aBearing)
void SetLauncherElevation (double aElevation)
void SetTargetImpactPoint (const WsfGeoPoint &aImpactPoint)
void SetTargetImpactPointWCS (const double aLocationWCS[])
void SetEndTime (double aEndTime)
void SetEndPoint (const WsfGeoPoint &aLocation)
void SetEndPointWCS (const double aLocationWCS[])
void ClearCommandedValues ()
void SetCommandedLauncherBearing (double aBearing)
void SetCommandedLauncherElevation (double aElevation)
void SetCommandedLoftAngle (double aLoftAngle)
void SetCommandedBurnTime (double aBurnTime)
void SetCommandedInterceptPoint (const WsfGeoPoint &aPoint)
bool DebugEnabled () const
void SetDebugEnabled (bool aDebugEnabled)
bool ShowResults () const
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 TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (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)

Static Public Member Functions

static std::string BaseTypeName ()
 The basic type name (needed by weapon_tools and launch computer processor).
Static Public Member Functions inherited from WsfLaunchComputer
static std::string BaseTypeName ()
static bool LoadInstance (UtInput &aInput, WsfLaunchComputer *&aLCPtr)
static bool GetLauncherBearing (const WsfTrack &aTrack, double &aBearing)
static bool GetLauncherElevation (const WsfTrack &aTrack, double &aElevation)
static bool GetLoftAngle (const WsfTrack &aTrack, double &aLoftAngle)
static bool GetBurnTime (const WsfTrack &aTrack, double &aBurnTime)
static bool GetInterceptTime (const WsfTrack &aTrack, double &aInterceptTime)
static bool GetInterceptPoint (const WsfTrack &aTrack, WsfGeoPoint &aPoint)

Protected Member Functions

bool InitializeTTIData () override
 WsfAirToAirLaunchComputer (const WsfAirToAirLaunchComputer &aSrc)
Protected Member Functions inherited from WsfLaunchComputer
bool ResultIsValidFor (unsigned int aDataMask) const
void InitializeResults (double aSimTime, const WsfTrack &aTrack)
void UpdateResults (double aSimTime, double aTimeToIntercept, const WsfTrack &aTrack)
void ClearConstraints ()
void CopyConstraints (const bool aSrc[])
double ExpectedFlightDistance () const
double CurrentOpeningSpeed () const
virtual bool WithinConstraintsAt (double aSimTime, double aFutureInterceptTime, const WsfTrack &aTrack)
bool DeltaAltitudeCheck (double aDeltaAltitude) const
bool SlantRangeCheck (double aSlantRange) const
bool BoresightAngleCheck (WsfPlatform *aPlatPtr, double aLocWCS[3]) const
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Static Protected Attributes

static constexpr double cNOT_SET {-1.0}

Additional Inherited Members

Public Types inherited from WsfLaunchComputer
enum  Constraints {
  cMAX_DELTA_ALTITUDE , cMIN_DELTA_ALTITUDE , cMIN_OPENING_SPEED , cMAX_OPENING_SPEED ,
  cMAX_SLANT_RANGE , cMIN_SLANT_RANGE , cMAX_BORESIGHT_ANGLE , cNUMBER_OF_CONSTRAINTS
}
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Static Public Attributes inherited from WsfLaunchComputer
static const double cFOREVER = 1.0E8
 Constant indicating a large amount of time, or "will never get there".
static const double cOUT_OF_REACH = 1.0E+30
 Constant indicating an unattainable distance, or "a long way away".
static const double cUNDEFINED_DOUBLE = 1.0E+30
 A constant indicating a value is undefined.
Protected Types inherited from WsfLaunchComputer
enum  {
  cVF_LAUNCH_TIME = 0X0001 , cVF_LAUNCHER_BEARING = 0X0002 , cVF_LAUNCHER_ELEVATION = 0X0004 , cVF_LOFT_ANGLE = 0X0008 ,
  cVF_BURN_TIME = 0X0010 , cVF_TIME_OF_FLIGHT = 0X0020 , cVF_INTERCEPT_TIME = 0X0040 , cVF_INTERCEPT_POINT = 0X0080 ,
  cVF_TARGET_IMPACT_TIME = 0X0100 , cVF_TARGET_IMPACT_POINT = 0X0200 , cVF_END_TIME = 0X0400 , cVF_END_POINT = 0X0800
}
static bool GetDataValue (const WsfTrack &aTrack, const std::string &aName, double &aValue, double aMultiplier)
WsfWeaponmWeaponPtr
bool mDebugEnabled
bool mShowResults
bool mComputerGenerationMode
bool mConstraintEnabled [cNUMBER_OF_CONSTRAINTS]
double mPredictionLockinTime
double mMaxDeltaAltitude
double mMinDeltaAltitude
double mMinOpeningSpeed
double mMaxOpeningSpeed
double mMaxSlantRange
double mMinSlantRange
double mCosineMaxBoresight
double mMaximumTOF
double mAvgThrustingAccel
double mBurnoutSpeed
double mBurnDuration
double mCoastTime
double mAvgCoastingAccel
double mMinTerminalSpeed
double mLastPredictionTime
WsfTrackId mLastPredictionTrackId
unsigned int mValidityFlags
double mLaunchTime
double mLauncherBearing
double mLauncherElevation
double mLoftAngle
double mBurnTime
double mTimeOfFlight
double mInterceptTime
WsfGeoPoint mInterceptPoint
double mTargetImpactTime
WsfGeoPoint mTargetImpactPoint
double mEndTime
WsfGeoPoint mEndPoint
double mCommandedLauncherBearing
double mCommandedLauncherElevation
double mCommandedLoftAngle
double mCommandedBurnTime
WsfGeoPoint mCommandedInterceptPoint

Detailed Description

A WsfAirToAirLaunchComputer provides information supporting the decision to launch a guided airborne weapon against the track of another airborne platform. The class is primarily just a shell to hold references to a shared data table.

Engagement Assumptions: No embedded sensor model (WsfTrack only). Both target and shooter are in level flight, and do not take the fight vertical. Independent variables are: Shooter altitude and Mach, Target altitude and Mach, Target Aspect (nose on = 0), Target Lead Angle. Dependent Variables are: R_max, R_ne (no escape), R_min, and times-of-flight for each. R_ne assumption: Target turns tail to missile w/<input-specified> G turn at the instant of launch.

Constructor & Destructor Documentation

◆ WsfAirToAirLaunchComputer() [1/2]

WsfAirToAirLaunchComputer::WsfAirToAirLaunchComputer ( const UtAtmosphere & aAtmosphere)

◆ ~WsfAirToAirLaunchComputer()

WsfAirToAirLaunchComputer::~WsfAirToAirLaunchComputer ( )
overridedefault

◆ WsfAirToAirLaunchComputer() [2/2]

WsfAirToAirLaunchComputer::WsfAirToAirLaunchComputer ( const WsfAirToAirLaunchComputer & aSrc)
protected

Member Function Documentation

◆ BaseTypeName()

std::string WsfAirToAirLaunchComputer::BaseTypeName ( )
inlinestatic

The basic type name (needed by weapon_tools and launch computer processor).

Referenced by AirToAirLaunchComputerGenerator::AirToAirLaunchComputerGenerator(), and WsfLaunchComputerTypes::WsfLaunchComputerTypes().

◆ Clone()

WsfLaunchComputer * WsfAirToAirLaunchComputer::Clone ( ) const
overridevirtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfObject.

References WsfAirToAirLaunchComputer(), and WsfLaunchComputer::WsfLaunchComputer().

◆ EstimatedTimeToIntercept()

double WsfAirToAirLaunchComputer::EstimatedTimeToIntercept ( double aSimTime,
const WsfTrack & aTrack,
double aLaunchDelayTime )
overridevirtual

Implementation of virtual base class method.

Reimplemented from WsfLaunchComputer.

References WsfLaunchComputer::cFOREVER, cNOT_SET, and LookupResult().

◆ GetTable()

ATA_InterceptTable & WsfAirToAirLaunchComputer::GetTable ( )
inline

Referenced by Initialize(), and Test().

◆ Initialize()

bool WsfAirToAirLaunchComputer::Initialize ( double aSimTime,
WsfWeapon * aWeaponPtr )
overridevirtual

Initialize the object.

Parameters
aSimTimeThe current simulation time.
aWeaponPtrThe reference platform to use with default launch calculations.
Returns
'true' if successful or 'false' if some sort of error occurred.

Reimplemented from WsfLaunchComputer.

References GetTable(), WsfLaunchComputer::Initialize(), and success.

◆ InitializeTTIData()

bool WsfAirToAirLaunchComputer::InitializeTTIData ( )
overrideprotectedvirtual

Initialize Time To Intercept data for the object. If no TTI data is needed, then override method and simply return true.

Returns
'true' if successful or 'false' if some sort of error occurred.

Reimplemented from WsfLaunchComputer.

◆ LookupResult() [1/2]

bool WsfAirToAirLaunchComputer::LookupResult ( const WsfTrack & aTrack,
double & aRmax,
double & aRmaxTOF,
double & aRne,
double & aRneTOF,
double & aRmin,
double & aRminTOF )

Accessor returns the Rmax, Rne, and Rmin values (and corresponding times of flight) for the engagement condition nearest the supplied input Track. Boolean return value indicates whether the conditions are within the defined valid condition set (true) or extrapolated (false).

Parameters
aTrackTarget Track to intercept.
aRmaxTabular Output Maximum Time Of Flight value for the weapon (closest condition).
aRmaxTOFTabular Output Maximum Time Of Flight value for the weapon (closest condition).
aRneTabular Output No-Escape Range value for the weapon (closest condition).
aRneTOFTabular Output No-Escape Time Of Flight value for the weapon (closest condition).
aRminTabular Output Minimum Range value for the weapon (closest condition).
aRminTOFTabular Output Minimum Time Of Flight Range value for the weapon (closest condition).
Returns
Within valid table range (true), or not (false).

References WsfLaunchComputer::DebugEnabled(), WsfPlatformPart::GetPlatform(), WsfLaunchComputer::GetWeapon(), and LookupResult().

Referenced by EstimatedTimeToIntercept(), LookupResult(), Test(), and ~WsfAirToAirLaunchComputer().

◆ LookupResult() [2/2]

bool WsfAirToAirLaunchComputer::LookupResult ( double aShooterInAlt,
double aShooterInMach,
double aTargetInAlt,
double aTargetInMach,
double aTargetInAspect,
double aTargetInLead,
double & aShooterOutAlt,
double & aShooterOutMach,
double & aTargetOutAlt,
double & aTargetOutMach,
double & aTargetOutAspect,
double & aTargetOutLead,
double & aRmax,
double & aRmaxTOF,
double & aRne,
double & aRneTOF,
double & aRmin,
double & aRminTOF )

Accessor returns the Rmax, Rne, and Rmin values (and corresponding times of flight) for the engagement condition nearest the supplied input Track. Boolean return value indicates whether the conditions are within the defined valid condition set (true) or extrapolated (false).

Parameters
aShooterInAltInput current shooter altitude.
aShooterInMachInput current shooter Mach number(speed).
aTargetInAltInput current target Altitude.
aTargetInMachInput current target Speed.
aTargetInAspectInput current target Aspect Angle.
aTargetInLeadInput current target Lead Angle
aShooterOutAltClosest Tabulated shooter altitude to current conditions.
aShooterOutMachClosest Tabulated shooter Mach to current conditions.
aTargetOutAltClosest Tabulated target Altitude to current conditions.
aTargetOutMachClosest Tabulated target Mach to current conditions.
aTargetOutAspectClosest Tabulated target Aspect to current conditions.
aTargetOutLeadClosest Tabulated target Lead angle to current conditions.
aRmaxTabular Output Maximum Time Of Flight value for the weapon (closest condition).
aRmaxTOFTabular Output Maximum Time Of Flight value for the weapon (closest condition).
aRneTabular Output No-Escape Range value for the weapon (closest condition).
aRneTOFTabular Output No-Escape Time Of Flight value for the weapon (closest condition).
aRminTabular Output Minimum Range value for the weapon (closest condition).
aRminTOFTabular Output Minimum Time Of Flight Range value for the weapon (closest condition).
Returns
Within valid table range (true), or not (false).

References cNOT_SET, WsfAirToAirLaunchComputer::ATA_InterceptTable::Result::mRmax, WsfAirToAirLaunchComputer::ATA_InterceptTable::Result::mRmaxTOF, WsfAirToAirLaunchComputer::ATA_InterceptTable::Result::mRmin, WsfAirToAirLaunchComputer::ATA_InterceptTable::Result::mRminTOF, WsfAirToAirLaunchComputer::ATA_InterceptTable::Result::mRne, and WsfAirToAirLaunchComputer::ATA_InterceptTable::Result::mRneTOF.

◆ operator=()

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

◆ ProcessInput()

bool WsfAirToAirLaunchComputer::ProcessInput ( UtInput & aInput)
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'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

References WsfLaunchComputer::DebugEnabled(), WsfScenario::FromInput(), WsfScenario::GetSystemLog(), WsfLaunchComputer::ProcessInput(), and WsfSystemLog::WriteLogEntry().

Referenced by WsfAirToAirLaunchComputer::ATA_InterceptTable::Load().

◆ Test()

bool WsfAirToAirLaunchComputer::Test ( )

◆ ToolOnlyInitialize()

bool WsfAirToAirLaunchComputer::ToolOnlyInitialize ( double aSimTime)

For use by the weapon_tools. Assures that selected ranges are monotonically increasing, which is required for proper table lookups.

Referenced by ~WsfAirToAirLaunchComputer().

Member Data Documentation

◆ cNOT_SET


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