WSF
WsfLaunchComputer Class Reference

#include <WsfLaunchComputer.hpp>

Inheritance diagram for WsfLaunchComputer:
Collaboration diagram for WsfLaunchComputer:

Public Types

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.

Public Member Functions

 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 bool Initialize (double aSimTime, WsfWeapon *aWeaponPtr)
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)
virtual double EstimatedTimeToIntercept (double aSimTime, const WsfTrack &aTrack, double aLaunchDelayTime)
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 ()
static bool LoadInstance (UtInput &aInput, WsfLaunchComputer *&aLCPtr)

Static Public Attributes

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

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
}

Protected Member Functions

bool ResultIsValidFor (unsigned int aDataMask) const
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Computer generation control.

These methods are used to control if computer generation mode is active. 'weapon_tools' will enable this when it is generating launch computers.

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
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 InitializeTTIData ()
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
bool ComputerGenerationMode () const
void SetComputerGenerationMode (bool aComputerGenerationMode)
static bool GetDataValue (const WsfTrack &aTrack, const std::string &aName, double &aValue, double aMultiplier)

Predicted intercept results

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

Commanded predicted intercept results

double mCommandedLauncherBearing
double mCommandedLauncherElevation
double mCommandedLoftAngle
double mCommandedBurnTime
WsfGeoPoint mCommandedInterceptPoint

Methods to set and get results from a track.

Results can be copied into a track (as aux_data) where it can subsequently be retrieved by the launched weapon. This is mostly used by the ballistic missile capability which needs to know the loft angle and time.

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)
void CopyResultsToTrack (WsfTrack &aTrack)

Intercept Results

The following methods are used to determine what data the launch computer has computed and to retrieve the computed results.

Note
Not all launch computers will compute all types of data. Hence the validity methods...
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

Methods to explicitly set the intercept results.

These are typically used by the scriptable launch computer (WsfScriptLaunchComputer) to define the results. Other derived classes can also use them, but they have direct access to much of the data as the results are stored as 'protected' members.

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[])

Explicit commands for launch computer results.

These commands are used by 'weapon_tools' to force certain conditions to be used. They also have input commands that can be used to override the launch computer for testing.

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

Detailed Description

The WsfLaunchComputer assists in deciding when to fire a given weapon at a WsfTrack. The WsfLaunchComputer is intrinsic to a specific weapon type, and supplies estimated data to be used in deciding whether to fire a weapon against a particular Track. Each weapon type will have unique kinematic capabilities and limitations, so this base class will need to be extended to correctly fire specific weapon types. The base virtual double TimeToIntercept() function is of generic use, and may be overridden in a derived class, if the base method is not of high enough fidelity. Other decision criteria accessors may be added to the class later, such as Probability of Kill, etc.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
cVF_LAUNCH_TIME 
cVF_LAUNCHER_BEARING 
cVF_LAUNCHER_ELEVATION 
cVF_LOFT_ANGLE 
cVF_BURN_TIME 
cVF_TIME_OF_FLIGHT 
cVF_INTERCEPT_TIME 
cVF_INTERCEPT_POINT 
cVF_TARGET_IMPACT_TIME 
cVF_TARGET_IMPACT_POINT 
cVF_END_TIME 
cVF_END_POINT 

◆ Constraints

Enumerator
cMAX_DELTA_ALTITUDE 

Constraint index indicating the highest attainable target altitude.

cMIN_DELTA_ALTITUDE 

Constraint index indicating the lowest attainable target altitude.

cMIN_OPENING_SPEED 

Constraint index indicating the minimum opening speed (positive = diverging).

cMAX_OPENING_SPEED 

Constraint index indicating the maximum opening speed (positive = diverging).

cMAX_SLANT_RANGE 

Constraint index indicating the longest attainable target slant range.

cMIN_SLANT_RANGE 

Constraint index indicating the longest attainable (2-D) ground range.

cMAX_BORESIGHT_ANGLE 

Constraint index indicating the maximum successful off-boresight angle.

cNUMBER_OF_CONSTRAINTS 

Used internally as a loop counter limit.

Constructor & Destructor Documentation

◆ WsfLaunchComputer() [1/2]

WsfLaunchComputer::WsfLaunchComputer ( )

References ClearConstraints(), cUNDEFINED_DOUBLE, mAvgCoastingAccel, mAvgThrustingAccel, mBurnDuration, mBurnoutSpeed, mBurnTime, mCoastTime, mCommandedBurnTime, mCommandedInterceptPoint, mCommandedLauncherBearing, mCommandedLauncherElevation, mCommandedLoftAngle, mComputerGenerationMode, mCosineMaxBoresight, mDebugEnabled, mEndPoint, mEndTime, mInterceptPoint, mInterceptTime, mLastPredictionTime, mLastPredictionTrackId, mLauncherBearing, mLauncherElevation, mLaunchTime, mLoftAngle, mMaxDeltaAltitude, mMaximumTOF, mMaxOpeningSpeed, mMaxSlantRange, mMinDeltaAltitude, mMinOpeningSpeed, mMinSlantRange, mMinTerminalSpeed, mPredictionLockinTime, mShowResults, mTargetImpactPoint, mTargetImpactTime, mTimeOfFlight, mValidityFlags, mWeaponPtr, and WsfObject::WsfObject().

Referenced by Fires::FiresLaunchComputer::Clone(), WsfAirToAirLaunchComputer::Clone(), WsfATA_LaunchComputer::Clone(), WsfATG_LaunchComputer::Clone(), WsfBallisticLaunchComputer::Clone(), WsfBallisticMissileLaunchComputer::Clone(), Clone(), WsfOrbitalLaunchComputer::Clone(), WsfSAM_LaunchComputer::Clone(), WsfScriptLaunchComputer::Clone(), WsfTabularLaunchComputer::Clone(), Fires::FiresLaunchComputer::FiresLaunchComputer(), LoadInstance(), WsfATA_LaunchComputer::operator=(), WsfBallisticMissileLaunchComputer::operator=(), operator=(), WsfOrbitalLaunchComputer::operator=(), WsfTabularLaunchComputer::operator=(), WsfAirToAirLaunchComputer::WsfAirToAirLaunchComputer(), WsfAirToAirLaunchComputer::WsfAirToAirLaunchComputer(), WsfATA_LaunchComputer::WsfATA_LaunchComputer(), WsfATA_LaunchComputer::WsfATA_LaunchComputer(), WsfATG_LaunchComputer::WsfATG_LaunchComputer(), WsfATG_LaunchComputer::WsfATG_LaunchComputer(), WsfBallisticLaunchComputer::WsfBallisticLaunchComputer(), WsfBallisticMissileLaunchComputer::WsfBallisticMissileLaunchComputer(), WsfBallisticMissileLaunchComputer::WsfBallisticMissileLaunchComputer(), WsfLaunchComputer(), WsfOrbitalLaunchComputer::WsfOrbitalLaunchComputer(), WsfSAM_LaunchComputer::WsfSAM_LaunchComputer(), WsfSAM_LaunchComputer::WsfSAM_LaunchComputer(), WsfScriptLaunchComputer::WsfScriptLaunchComputer(), WsfScriptLaunchComputer::WsfScriptLaunchComputer(), WsfScriptLaunchComputer::WsfScriptLaunchComputer(), WsfTabularLaunchComputer::WsfTabularLaunchComputer(), WsfTabularLaunchComputer::WsfTabularLaunchComputer(), Fires::FiresLaunchComputer::~FiresLaunchComputer(), WsfAirToAirLaunchComputer::~WsfAirToAirLaunchComputer(), WsfBallisticLaunchComputer::~WsfBallisticLaunchComputer(), and WsfSAM_LaunchComputer::~WsfSAM_LaunchComputer().

◆ WsfLaunchComputer() [2/2]

◆ ~WsfLaunchComputer()

WsfLaunchComputer::~WsfLaunchComputer ( )
overridedefault

Member Function Documentation

◆ BaseTypeName()

std::string WsfLaunchComputer::BaseTypeName ( )
inlinestatic

◆ BoresightAngleCheck()

bool WsfLaunchComputer::BoresightAngleCheck ( WsfPlatform * aPlatPtr,
double aLocWCS[3] ) const
protected

Check the target boresight angle relative to the launcher.

Returns
True indicates either the constraint was not set, or the constraint passed.

References cMAX_BORESIGHT_ANGLE, mConstraintEnabled, and mCosineMaxBoresight.

Referenced by WithinConstraintsAt().

◆ BurnTimeIsValid()

bool WsfLaunchComputer::BurnTimeIsValid ( ) const
inline

◆ ClearCommandedValues()

void WsfLaunchComputer::ClearCommandedValues ( )
inline

References mValidityFlags.

◆ ClearConstraints()

void WsfLaunchComputer::ClearConstraints ( )
protected

◆ Clone()

WsfLaunchComputer * WsfLaunchComputer::Clone ( ) const
overridevirtual

Create a copy, or clone, of "this" object.

Returns
A pointer to the cloned object.

Implements WsfObject.

Reimplemented in WsfOrbitalLaunchComputer, WsfSAM_LaunchComputer, WsfScriptLaunchComputer, and WsfTabularLaunchComputer.

References WsfLaunchComputer().

◆ ComputerGenerationMode()

◆ CopyConstraints()

void WsfLaunchComputer::CopyConstraints ( const bool aSrc[])
protected

◆ CopyResultsToTrack()

void WsfLaunchComputer::CopyResultsToTrack ( WsfTrack & aTrack)

Copy intercept prediction results to the specified track. This is a helper method that can be used to copy results to a track where they can be picked up by a weapon (either being launched or inflight). The static Get() methods can be used to extract the values from the track.

References BurnTimeIsValid(), ComputerGenerationMode(), EndPointIsValid(), EndTimeIsValid(), WsfAuxDataEnabled::GetAuxData(), WsfTrack::GetTrackId(), HaveResultsFor(), InterceptPointIsValid(), InterceptTimeIsValid(), LauncherBearingIsValid(), LauncherElevationIsValid(), LoftAngleIsValid(), mBurnTime, mEndPoint, mEndTime, mInterceptPoint, mInterceptTime, mLauncherBearing, mLauncherElevation, and mLoftAngle.

◆ CurrentOpeningSpeed()

double WsfLaunchComputer::CurrentOpeningSpeed ( ) const
inlineprotected

◆ DebugEnabled()

◆ DeltaAltitudeCheck()

bool WsfLaunchComputer::DeltaAltitudeCheck ( double aDeltaAltitude) const
protected

Check the target altitude relative to the launch altitude for constraints.

Returns
True indicates either the constraint was not set, or the constraint was passed.

References cMAX_DELTA_ALTITUDE, cMIN_DELTA_ALTITUDE, mConstraintEnabled, mMaxDeltaAltitude, and mMinDeltaAltitude.

Referenced by WithinConstraintsAt().

◆ EndPointIsValid()

bool WsfLaunchComputer::EndPointIsValid ( ) const
inline

◆ EndTimeIsValid()

bool WsfLaunchComputer::EndTimeIsValid ( ) const
inline

◆ EstimatedTimeToIntercept()

double WsfLaunchComputer::EstimatedTimeToIntercept ( double aSimTime,
const WsfTrack & aTrack,
double aLaunchDelayTime )
virtual

Determine the estimated time for the weapon to intercept a target.

Parameters
aSimTimeThe current simulation time.
aTrackThe track that represents the target.
aLaunchDelayTimeThe time it takes until the weapon will be launched.
Returns
The estimated time to intercept the target, or cFOREVER if no intercept is possible.

Reimplemented in Fires::FiresLaunchComputer, WsfAirToAirLaunchComputer, WsfATA_LaunchComputer, WsfATG_LaunchComputer, WsfBallisticLaunchComputer, WsfBallisticMissileLaunchComputer, WsfOrbitalLaunchComputer, WsfSAM_LaunchComputer, WsfScriptLaunchComputer, and WsfTabularLaunchComputer.

References cFOREVER, ComputerGenerationMode(), InitializeResults(), mAvgCoastingAccel, mAvgThrustingAccel, mBurnDuration, UpdateResults(), and WithinConstraintsAt().

Referenced by WsfImplicitWeapon::BeginEngagement(), WsfBallisticMissileLaunchComputer::EstimatedTimeToIntercept(), and WsfScriptLaunchComputer::EstimatedTimeToIntercept().

◆ ExpectedFlightDistance()

double WsfLaunchComputer::ExpectedFlightDistance ( ) const
inlineprotected

◆ GetBurnTime() [1/2]

double WsfLaunchComputer::GetBurnTime ( ) const
inline

◆ GetBurnTime() [2/2]

bool WsfLaunchComputer::GetBurnTime ( const WsfTrack & aTrack,
double & aBurnTime )
static

References GetDataValue().

◆ GetDataValue()

bool WsfLaunchComputer::GetDataValue ( const WsfTrack & aTrack,
const std::string & aName,
double & aValue,
double aMultiplier )
staticprotected

◆ GetEndPoint()

const WsfGeoPoint & WsfLaunchComputer::GetEndPoint ( ) const
inline

References mEndPoint.

◆ GetEndTime()

double WsfLaunchComputer::GetEndTime ( ) const
inline

References mEndTime.

◆ GetInterceptPoint() [1/2]

◆ GetInterceptPoint() [2/2]

bool WsfLaunchComputer::GetInterceptPoint ( const WsfTrack & aTrack,
WsfGeoPoint & aPoint )
static

◆ GetInterceptTime() [1/2]

double WsfLaunchComputer::GetInterceptTime ( ) const
inline

◆ GetInterceptTime() [2/2]

bool WsfLaunchComputer::GetInterceptTime ( const WsfTrack & aTrack,
double & aInterceptTime )
static

References GetDataValue().

◆ GetLauncherBearing() [1/2]

double WsfLaunchComputer::GetLauncherBearing ( ) const
inline

References mLauncherBearing.

◆ GetLauncherBearing() [2/2]

bool WsfLaunchComputer::GetLauncherBearing ( const WsfTrack & aTrack,
double & aBearing )
static

References GetDataValue().

◆ GetLauncherElevation() [1/2]

double WsfLaunchComputer::GetLauncherElevation ( ) const
inline

References mLauncherElevation.

◆ GetLauncherElevation() [2/2]

bool WsfLaunchComputer::GetLauncherElevation ( const WsfTrack & aTrack,
double & aElevation )
static

References GetDataValue().

◆ GetLaunchTime()

double WsfLaunchComputer::GetLaunchTime ( ) const
inline

References mLaunchTime.

◆ GetLoftAngle() [1/2]

double WsfLaunchComputer::GetLoftAngle ( ) const
inline

◆ GetLoftAngle() [2/2]

bool WsfLaunchComputer::GetLoftAngle ( const WsfTrack & aTrack,
double & aLoftAngle )
static

References GetDataValue().

◆ GetPlatform()

◆ GetScriptClassName()

const char * WsfLaunchComputer::GetScriptClassName ( ) const
override

◆ GetSimulation()

◆ GetTargetImpactPoint()

const WsfGeoPoint & WsfLaunchComputer::GetTargetImpactPoint ( ) const
inline

References mTargetImpactPoint.

◆ GetTargetImpactTime()

double WsfLaunchComputer::GetTargetImpactTime ( ) const
inline

References mTargetImpactTime.

◆ GetTimeOfFlight()

double WsfLaunchComputer::GetTimeOfFlight ( ) const
inline

◆ GetWeapon()

◆ HaveResultsFor() [1/2]

bool WsfLaunchComputer::HaveResultsFor ( const WsfTrackId & aTrackId) const
inline

References mLastPredictionTrackId.

Referenced by CopyResultsToTrack().

◆ HaveResultsFor() [2/2]

bool WsfLaunchComputer::HaveResultsFor ( double aSimTime,
const WsfTrackId & aTrackId,
double & aTimeToIntercept ) const

◆ Initialize()

◆ InitializeResults()

◆ InitializeTTIData()

bool WsfLaunchComputer::InitializeTTIData ( )
protectedvirtual

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 in Fires::FiresLaunchComputer, WsfAirToAirLaunchComputer, WsfATA_LaunchComputer, WsfATG_LaunchComputer, WsfBallisticLaunchComputer, WsfBallisticMissileLaunchComputer, WsfOrbitalLaunchComputer, WsfSAM_LaunchComputer, WsfScriptLaunchComputer, and WsfTabularLaunchComputer.

References DebugEnabled(), mAvgCoastingAccel, mAvgThrustingAccel, mBurnDuration, mBurnoutSpeed, mCoastTime, mMaximumTOF, mMaxSlantRange, mMinTerminalSpeed, and success.

Referenced by Initialize().

◆ InterceptPointIsValid()

bool WsfLaunchComputer::InterceptPointIsValid ( ) const
inline

◆ InterceptTimeIsValid()

◆ LauncherBearingIsValid()

bool WsfLaunchComputer::LauncherBearingIsValid ( ) const
inline

◆ LauncherElevationIsValid()

bool WsfLaunchComputer::LauncherElevationIsValid ( ) const
inline

◆ LaunchTimeIsValid()

bool WsfLaunchComputer::LaunchTimeIsValid ( ) const
inline

References cVF_LAUNCH_TIME, and ResultIsValidFor().

Referenced by UpdateResults().

◆ LoadInstance()

bool WsfLaunchComputer::LoadInstance ( UtInput & aInput,
WsfLaunchComputer *& aLCPtr )
static

References WsfLaunchComputer().

◆ LoftAngleIsValid()

bool WsfLaunchComputer::LoftAngleIsValid ( ) const
inline

◆ operator=()

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

◆ ProcessInput()

bool WsfLaunchComputer::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.

Reimplemented from WsfObject.

Reimplemented in WsfOrbitalLaunchComputer, WsfSAM_LaunchComputer, WsfScriptLaunchComputer, and WsfTabularLaunchComputer.

References cMAX_DELTA_ALTITUDE, cMAX_OPENING_SPEED, cMAX_SLANT_RANGE, cMIN_DELTA_ALTITUDE, cMIN_OPENING_SPEED, cMIN_SLANT_RANGE, mBurnDuration, mCoastTime, mComputerGenerationMode, mConstraintEnabled, mDebugEnabled, mMaxDeltaAltitude, mMaximumTOF, mMaxOpeningSpeed, mMaxSlantRange, mMinDeltaAltitude, mMinOpeningSpeed, mMinSlantRange, mPredictionLockinTime, mShowResults, SetBurnoutSpeed(), SetBurnTime(), SetCoastDuration(), SetCommandedBurnTime(), SetCommandedInterceptPoint(), SetCommandedLauncherBearing(), SetCommandedLauncherElevation(), SetCommandedLoftAngle(), SetInterceptPoint(), SetLauncherBearing(), SetLauncherElevation(), SetLoftAngle(), SetMaximumClosingSpeed(), SetMaximumDeltaAltitude(), SetMaximumOffBoresight(), SetMaximumOpeningSpeed(), SetMaximumSlantRange(), SetMaximumTimeOfFlight(), SetMinimumClosingSpeed(), SetMinimumDeltaAltitude(), SetMinimumOpeningSpeed(), SetMinimumSlantRange(), SetMinTerminalSpeed(), and SetThrustDuration().

Referenced by WsfLaunchComputerTypes::LoadInstance(), Fires::FiresLaunchComputer::ProcessInput(), WsfAirToAirLaunchComputer::ProcessInput(), WsfATA_LaunchComputer::ProcessInput(), WsfATG_LaunchComputer::ProcessInput(), WsfBallisticLaunchComputer::ProcessInput(), WsfBallisticMissileLaunchComputer::ProcessInput(), WsfOrbitalLaunchComputer::ProcessInput(), WsfSAM_LaunchComputer::ProcessInput(), WsfScriptLaunchComputer::ProcessInput(), and WsfTabularLaunchComputer::ProcessInput().

◆ ResultIsValidFor()

◆ SetBurnoutSpeed()

void WsfLaunchComputer::SetBurnoutSpeed ( double aBurnoutSpeed)
inline

References mBurnoutSpeed.

Referenced by ProcessInput().

◆ SetBurnTime()

void WsfLaunchComputer::SetBurnTime ( double aBurnTime)
inline

◆ SetCoastDuration()

void WsfLaunchComputer::SetCoastDuration ( double aCoastTime)
inline

References mCoastTime.

Referenced by ProcessInput().

◆ SetCommandedBurnTime()

void WsfLaunchComputer::SetCommandedBurnTime ( double aBurnTime)
inline

◆ SetCommandedInterceptPoint()

void WsfLaunchComputer::SetCommandedInterceptPoint ( const WsfGeoPoint & aPoint)
inline

◆ SetCommandedLauncherBearing()

void WsfLaunchComputer::SetCommandedLauncherBearing ( double aBearing)
inline

◆ SetCommandedLauncherElevation()

void WsfLaunchComputer::SetCommandedLauncherElevation ( double aElevation)
inline

◆ SetCommandedLoftAngle()

void WsfLaunchComputer::SetCommandedLoftAngle ( double aLoftAngle)
inline

◆ SetComputerGenerationMode()

void WsfLaunchComputer::SetComputerGenerationMode ( bool aComputerGenerationMode)
inline

References mComputerGenerationMode.

Referenced by Tool::Initialize().

◆ SetDebugEnabled()

void WsfLaunchComputer::SetDebugEnabled ( bool aDebugEnabled)
inline

References mDebugEnabled.

◆ SetEndPoint()

void WsfLaunchComputer::SetEndPoint ( const WsfGeoPoint & aLocation)
inline

◆ SetEndPointWCS()

void WsfLaunchComputer::SetEndPointWCS ( const double aLocationWCS[])
inline

◆ SetEndTime()

void WsfLaunchComputer::SetEndTime ( double aEndTime)
inline

◆ SetInterceptPoint()

void WsfLaunchComputer::SetInterceptPoint ( const WsfGeoPoint & aInterceptPoint)
inline

◆ SetInterceptPointWCS()

void WsfLaunchComputer::SetInterceptPointWCS ( const double aLocationWCS[])
inline

◆ SetInterceptTime()

◆ SetLauncherBearing()

void WsfLaunchComputer::SetLauncherBearing ( double aBearing)
inline

◆ SetLauncherElevation()

void WsfLaunchComputer::SetLauncherElevation ( double aElevation)
inline

◆ SetLaunchTime()

void WsfLaunchComputer::SetLaunchTime ( double aLaunchTime)
inline

◆ SetLoftAngle()

◆ SetMaximumClosingSpeed()

void WsfLaunchComputer::SetMaximumClosingSpeed ( double aMaxClosingSpeed)

◆ SetMaximumDeltaAltitude()

void WsfLaunchComputer::SetMaximumDeltaAltitude ( double aMaxDeltaAltitude)

◆ SetMaximumOffBoresight()

void WsfLaunchComputer::SetMaximumOffBoresight ( double aMaxAngle)

◆ SetMaximumOpeningSpeed()

void WsfLaunchComputer::SetMaximumOpeningSpeed ( double aMaxOpeningSpeed)

◆ SetMaximumSlantRange()

void WsfLaunchComputer::SetMaximumSlantRange ( double aMaxRange)

◆ SetMaximumTimeOfFlight()

void WsfLaunchComputer::SetMaximumTimeOfFlight ( double aMaxTOF)
inline

References mMaximumTOF.

Referenced by ProcessInput().

◆ SetMinimumClosingSpeed()

void WsfLaunchComputer::SetMinimumClosingSpeed ( double aMinClosingSpeed)

◆ SetMinimumDeltaAltitude()

void WsfLaunchComputer::SetMinimumDeltaAltitude ( double aMinDeltaAltitude)

◆ SetMinimumOpeningSpeed()

void WsfLaunchComputer::SetMinimumOpeningSpeed ( double aMinOpeningSpeed)

◆ SetMinimumSlantRange()

void WsfLaunchComputer::SetMinimumSlantRange ( double aMinRange)

◆ SetMinTerminalSpeed()

void WsfLaunchComputer::SetMinTerminalSpeed ( double aMinTerminalSpeed)
inline

References mMinTerminalSpeed.

Referenced by ProcessInput().

◆ SetTargetImpactPoint()

void WsfLaunchComputer::SetTargetImpactPoint ( const WsfGeoPoint & aImpactPoint)
inline

◆ SetTargetImpactPointWCS()

void WsfLaunchComputer::SetTargetImpactPointWCS ( const double aLocationWCS[])
inline

◆ SetTargetImpactTime()

void WsfLaunchComputer::SetTargetImpactTime ( double aImpactTime)
inline

◆ SetThrustDuration()

void WsfLaunchComputer::SetThrustDuration ( double aThrustTime)
inline

References mBurnDuration.

Referenced by ProcessInput().

◆ SetTimeOfFlight()

◆ ShowResults()

◆ SlantRangeCheck()

bool WsfLaunchComputer::SlantRangeCheck ( double aSlantRange) const
protected

Check the target range relative to min and max constraints.

Returns
True indicates either the constraint was not set, or the constraint was passed.

References cMAX_SLANT_RANGE, cMIN_SLANT_RANGE, mConstraintEnabled, mMaxSlantRange, and mMinSlantRange.

Referenced by WithinConstraintsAt().

◆ TargetImpactPointIsValid()

bool WsfLaunchComputer::TargetImpactPointIsValid ( ) const
inline

◆ TargetImpactTimeIsValid()

bool WsfLaunchComputer::TargetImpactTimeIsValid ( ) const
inline

◆ TimeOfFlightIsValid()

bool WsfLaunchComputer::TimeOfFlightIsValid ( ) const
inline

◆ Update()

void WsfLaunchComputer::Update ( double aSimTime)
virtual

Reimplemented in WsfATG_LaunchComputer.

◆ UpdateResults()

◆ WithinConstraintsAt()

bool WsfLaunchComputer::WithinConstraintsAt ( double aSimTime,
double aFutureInterceptTime,
const WsfTrack & aTrack )
protectedvirtual

Evaluate whether the supplied WsfTrack currently passes the supplied constraints.

Parameters
aSimTimeCurrent time
aFutureInterceptTimePredicted future time of intercept (aSimTime plus predicted time of flight of the weapon).
aTrackTrack to be extrapolated for intercept
Returns
true Indicates within constraints (intercept believed attainable)

Reimplemented in WsfATG_LaunchComputer, and WsfBallisticLaunchComputer.

References BoresightAngleCheck(), cMAX_OPENING_SPEED, cMIN_OPENING_SPEED, DeltaAltitudeCheck(), WsfMeasurement::GetExtrapolatedLocationWCS(), GetPlatform(), mConstraintEnabled, mMaxOpeningSpeed, mMinOpeningSpeed, SlantRangeCheck(), and WsfPlatform::Update().

Referenced by WsfATA_LaunchComputer::EstimatedTimeToIntercept(), EstimatedTimeToIntercept(), and WsfATG_LaunchComputer::WithinConstraintsAt().

Member Data Documentation

◆ cFOREVER

◆ cOUT_OF_REACH

const double WsfLaunchComputer::cOUT_OF_REACH = 1.0E+30
static

Constant indicating an unattainable distance, or "a long way away".

Referenced by WsfBallisticMissileLaunchComputer::ComputeLateralTargetOffset().

◆ cUNDEFINED_DOUBLE

const double WsfLaunchComputer::cUNDEFINED_DOUBLE = 1.0E+30
static

A constant indicating a value is undefined.

Referenced by UpdateResults(), and WsfLaunchComputer().

◆ mAvgCoastingAccel

double WsfLaunchComputer::mAvgCoastingAccel
protected

◆ mAvgThrustingAccel

double WsfLaunchComputer::mAvgThrustingAccel
protected

◆ mBurnDuration

◆ mBurnoutSpeed

double WsfLaunchComputer::mBurnoutSpeed
protected

◆ mBurnTime

◆ mCoastTime

double WsfLaunchComputer::mCoastTime
protected

◆ mCommandedBurnTime

double WsfLaunchComputer::mCommandedBurnTime
protected

◆ mCommandedInterceptPoint

WsfGeoPoint WsfLaunchComputer::mCommandedInterceptPoint
protected

◆ mCommandedLauncherBearing

double WsfLaunchComputer::mCommandedLauncherBearing
protected

◆ mCommandedLauncherElevation

double WsfLaunchComputer::mCommandedLauncherElevation
protected

◆ mCommandedLoftAngle

double WsfLaunchComputer::mCommandedLoftAngle
protected

◆ mComputerGenerationMode

bool WsfLaunchComputer::mComputerGenerationMode
protected

◆ mConstraintEnabled

◆ mCosineMaxBoresight

double WsfLaunchComputer::mCosineMaxBoresight
protected

◆ mDebugEnabled

bool WsfLaunchComputer::mDebugEnabled
protected

◆ mEndPoint

◆ mEndTime

◆ mInterceptPoint

◆ mInterceptTime

◆ mLastPredictionTime

double WsfLaunchComputer::mLastPredictionTime
protected

◆ mLastPredictionTrackId

WsfTrackId WsfLaunchComputer::mLastPredictionTrackId
protected

◆ mLauncherBearing

◆ mLauncherElevation

double WsfLaunchComputer::mLauncherElevation
protected

◆ mLaunchTime

◆ mLoftAngle

◆ mMaxDeltaAltitude

double WsfLaunchComputer::mMaxDeltaAltitude
protected

◆ mMaximumTOF

double WsfLaunchComputer::mMaximumTOF
protected

◆ mMaxOpeningSpeed

double WsfLaunchComputer::mMaxOpeningSpeed
protected

◆ mMaxSlantRange

double WsfLaunchComputer::mMaxSlantRange
protected

◆ mMinDeltaAltitude

double WsfLaunchComputer::mMinDeltaAltitude
protected

◆ mMinOpeningSpeed

double WsfLaunchComputer::mMinOpeningSpeed
protected

◆ mMinSlantRange

double WsfLaunchComputer::mMinSlantRange
protected

◆ mMinTerminalSpeed

double WsfLaunchComputer::mMinTerminalSpeed
protected

◆ mPredictionLockinTime

double WsfLaunchComputer::mPredictionLockinTime
protected

The amount of time a prediction can be locked-in before it must be recomputed. This is used indirectly by the WsfWeapon::CueToTarget to determine if the launch solution should be recomputed.

Referenced by HaveResultsFor(), ProcessInput(), WsfLaunchComputer(), and WsfLaunchComputer().

◆ mShowResults

◆ mTargetImpactPoint

◆ mTargetImpactTime

double WsfLaunchComputer::mTargetImpactTime
protected

◆ mTimeOfFlight

◆ mValidityFlags

◆ mWeaponPtr


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