|
WSF
|
#include <WsfSAM_LaunchComputer.hpp>


Classes | |
| class | Interpolator |
| class | InterceptEnvelope |
| struct | TestPoint |
Public Member Functions | |
| WsfSAM_LaunchComputer () | |
| WsfSAM_LaunchComputer (const WsfSAM_LaunchComputer &aSrc) | |
| Copy constructor. | |
| WsfSAM_LaunchComputer & | operator= (const WsfSAM_LaunchComputer &)=delete |
| ~WsfSAM_LaunchComputer () override=default | |
| WsfLaunchComputer * | Clone () const override |
| bool | ProcessInput (UtInput &aInput) override |
| bool | Initialize (double aSimTime, WsfWeapon *aWeaponPtr) override |
| double | EstimatedTimeToIntercept (double aSimTime, const WsfTrack &aTrack, double aLaunchDelayTime) override |
| double | InterpolatedTimeToIntercept (double aOffset, double aAltitude, double aRange, double aSpeed) |
| This method is for testing of the internal interpolation routines only. | |
| InterceptEnvelope * | GetEnvPtr () |
| Return a pointer to the intercept envelope. | |
| Public Member Functions inherited from WsfLaunchComputer | |
| WsfLaunchComputer () | |
| WsfLaunchComputer (const WsfLaunchComputer &aSrc) | |
| Copy constructor. | |
| ~WsfLaunchComputer () override=default | |
| WsfLaunchComputer & | operator= (const WsfLaunchComputer &)=delete |
| const char * | GetScriptClassName () const override |
| virtual void | Update (double aSimTime) |
| WsfWeapon * | GetWeapon () const |
| Return the weapon with which this launch computer is associated. | |
| WsfPlatform * | GetPlatform () const |
| Return the platform with which this launch computer is associated. | |
| WsfSimulation * | GetSimulation () 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 WsfGeoPoint & | GetInterceptPoint () const |
| double | GetTargetImpactTime () const |
| const WsfGeoPoint & | GetTargetImpactPoint () const |
| double | GetEndTime () const |
| const WsfGeoPoint & | GetEndPoint () 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (const WsfObject &aRhs) |
| Assignment operator. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Static Public Member Functions | |
| static std::string | BaseTypeName () |
| The basic type name (needed by weapon_tools and launch computer processor). | |
| static bool | ValidateEnvelope (InterceptEnvelope *aEnvelopePtr, bool aIgnoreTOFs) |
| 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 | |
| void | TestInterpolationPoints () |
| bool | ProcessArray (UtInput &aInput, const std::string &aBlockTerminator, UtInput::ValueType aUnitType, std::vector< double > &aValues) |
| bool | InitializeTTIData () override |
| 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()). | |
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< WsfStringId > | TypeList |
| 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) |
The WsfSAMLaunchComputer will estimate Time-To-Intercept an air threat from a stationary ground (missile or directed energy) weapon system, by using an interpolated table lookup.
| WsfSAM_LaunchComputer::WsfSAM_LaunchComputer | ( | ) |
References mEnvelopePtr, mInputAltitudes, mInputOffsets, mInputRanges, mInputSpeeds, mInterpolator, mTestPoints, and WsfLaunchComputer::WsfLaunchComputer().
Referenced by Clone(), operator=(), and WsfSAM_LaunchComputer().
| WsfSAM_LaunchComputer::WsfSAM_LaunchComputer | ( | const WsfSAM_LaunchComputer & | aSrc | ) |
Copy constructor.
References mEnvelopePtr, mInputAltitudes, mInputOffsets, mInputRanges, mInputSpeeds, mInterpolator, mTestPoints, WsfLaunchComputer::WsfLaunchComputer(), and WsfSAM_LaunchComputer().
|
overridedefault |
References InterpolatedTimeToIntercept(), and WsfLaunchComputer::WsfLaunchComputer().
|
inlinestatic |
The basic type name (needed by weapon_tools and launch computer processor).
Referenced by SAM_LaunchComputerGenerator::WriteOutputFile(), and WsfLaunchComputerTypes::WsfLaunchComputerTypes().
|
overridevirtual |
Create a copy, or clone, of "this" object.
Reimplemented from WsfLaunchComputer.
References WsfLaunchComputer::WsfLaunchComputer(), and WsfSAM_LaunchComputer().
|
overridevirtual |
Determine the estimated time for the weapon to intercept a target.
| aSimTime | The current simulation time. |
| aTrack | The track that represents the target. |
| aLaunchDelayTime | The time it takes until the weapon will be launched. |
Reimplemented from WsfLaunchComputer.
References WsfLaunchComputer::cFOREVER, WsfLaunchComputer::DebugEnabled(), WsfMeasurement::GetExtrapolatedLocationWCS(), WsfLaunchComputer::GetPlatform(), WsfLaunchComputer::InitializeResults(), mInterpolator, and WsfLaunchComputer::UpdateResults().
| WsfSAM_LaunchComputer::InterceptEnvelope * WsfSAM_LaunchComputer::GetEnvPtr | ( | ) |
Return a pointer to the intercept envelope.
References mEnvelopePtr.
Referenced by Initialize(), InitializeTTIData(), and ProcessInput().
|
overridevirtual |
Initialize the object.
| aSimTime | The current simulation time. |
| aWeaponPtr | The reference platform to use with default launch calculations. |
Reimplemented from WsfLaunchComputer.
References GetEnvPtr(), WsfLaunchComputer::Initialize(), InitializeTTIData(), WsfSAM_LaunchComputer::InterceptEnvelope::mAltitudes, mInterpolator, WsfSAM_LaunchComputer::InterceptEnvelope::mOffsets, WsfSAM_LaunchComputer::InterceptEnvelope::mRanges, WsfSAM_LaunchComputer::InterceptEnvelope::mSpeeds, mTestPoints, WsfSAM_LaunchComputer::InterceptEnvelope::mTOFs, success, and TestInterpolationPoints().
|
overrideprotectedvirtual |
Initialize Time To Intercept data for the object. If no TTI data is needed, then override method and simply return true.
Reimplemented from WsfLaunchComputer.
References GetEnvPtr(), and ValidateEnvelope().
Referenced by Initialize().
| double WsfSAM_LaunchComputer::InterpolatedTimeToIntercept | ( | double | aOffset, |
| double | aAltitude, | ||
| double | aRange, | ||
| double | aSpeed ) |
This method is for testing of the internal interpolation routines only.
References mInterpolator.
Referenced by TestInterpolationPoints(), and ~WsfSAM_LaunchComputer().
|
delete |
References WsfSAM_LaunchComputer().
|
protected |
Parse an input stream and extract from it an array of unit values.
| aInput | The input stream reference. |
| aBlockTerminator | The string to search for end-of-block. |
| aUnitType | The type of unit to be read in and added to the array contents. |
| aValues | An array of floating point values to hold the results of parsing. |
Referenced by ProcessInput().
|
overridevirtual |
Process input from a generic source. Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.
| aInput | a reference to a UtInput object. |
Reimplemented from WsfLaunchComputer.
References WsfSAM_LaunchComputer::TestPoint::altitude, GetEnvPtr(), WsfSAM_LaunchComputer::TestPoint::groundRange, WsfSAM_LaunchComputer::TestPoint::latOffset, mInputAltitudes, mInputOffsets, mInputRanges, mInputSpeeds, mTestPoints, ProcessArray(), WsfLaunchComputer::ProcessInput(), WsfSAM_LaunchComputer::InterceptEnvelope::ProcessInterceptEnvBlock(), WsfSAM_LaunchComputer::InterceptEnvelope::Resize(), and WsfSAM_LaunchComputer::TestPoint::speed.
Referenced by WsfSAM_LaunchComputer::InterceptEnvelope::ProcessInput().
|
protected |
|
static |
References WsfSAM_LaunchComputer::InterceptEnvelope::Initialize().
Referenced by InitializeTTIData(), and SAM_LaunchComputerGenerator::TestOutputFile().
|
protected |
Referenced by GetEnvPtr(), WsfSAM_LaunchComputer(), and WsfSAM_LaunchComputer().
|
protected |
Referenced by ProcessInput(), WsfSAM_LaunchComputer(), and WsfSAM_LaunchComputer().
|
protected |
Referenced by ProcessInput(), WsfSAM_LaunchComputer(), and WsfSAM_LaunchComputer().
|
protected |
Referenced by ProcessInput(), WsfSAM_LaunchComputer(), and WsfSAM_LaunchComputer().
|
protected |
Referenced by ProcessInput(), WsfSAM_LaunchComputer(), and WsfSAM_LaunchComputer().
|
protected |
|
protected |
Referenced by Initialize(), ProcessInput(), TestInterpolationPoints(), WsfSAM_LaunchComputer(), and WsfSAM_LaunchComputer().