|
WSF
|
A launch computer implementation for launch-to-orbit. More...
#include <WsfOrbitalLaunchComputer.hpp>


Classes | |
| class | Orbit |
| Define the data for a particular orbit. More... | |
Public Member Functions | |
| WsfOrbitalLaunchComputer () | |
| WsfOrbitalLaunchComputer (const WsfOrbitalLaunchComputer &aSrc)=default | |
| ~WsfOrbitalLaunchComputer () override=default | |
| WsfOrbitalLaunchComputer & | operator= (const WsfOrbitalLaunchComputer &)=delete |
| 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 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) |
Accessors for last results | |
These are valid only if the last call to ComputeLEO_Insertion returned 'true' | |
| enum | Variable { cALTITUDE , cINCLINATION } |
| using | OrbitList = std::list<Orbit> |
| using | OrbitListIter = std::list<Orbit>::const_iterator |
| static bool | ReadOrbits (const std::string &aFileName, std::list< Orbit > &aOrbits) |
| static bool | WriteOrbits (WsfArticulatedPart *aSystemPtr, const std::string &aFileName, const std::list< Orbit > &aOrbits) |
| static void | ComputeOrbitalElements (const ut::CentralBody &aCentralBody, double aResults[6], const Orbit &aOrbit, UtCalendar &aCalendar) |
| static void | ComputeOrbitalElements (const ut::CentralBody &aCentralBody, double aResults[6], const double aLocECI[3], const double aVelECI[3], UtCalendar &aCalendar) |
| double | GetLaunchHeading () const |
| double | GetInclination () const |
| double | GetInsertionTimeOfFlight () const |
| WsfGeoPoint | GetInsertionLocation () const |
| double | GetInsertionSpeed () const |
| double | GetInsertionSpeedFixed () const |
| double | GetInsertionHeading () const |
| double | GetInsertionPitch () const |
| double | GetInsertionResidualDeltaV () const |
| double | GetInsertionFuelRemaining () const |
| double | GetInsertionTimeRemaining () const |
| void | GetOrbitalElements (double aResults[6]) const |
| bool | InitializeTTIData () override |
| void | InterpolateOrbits (Orbit &aResult, const Orbit &aOrbit1, const Orbit &aOrbit2, Variable aFunction, double aValue) const |
| bool | InterpolateAlongLaunchHeading (Orbit &aResult, OrbitListIter aBestIter, double aAltitude) const |
Common framework methods | |
| WsfLaunchComputer * | Clone () const override |
| const char * | GetScriptClassName () const override |
| bool | ProcessInput (UtInput &aInput) override |
| bool | Initialize (double aSimTime, WsfWeapon *aWeaponPtr) override |
WsfLaunchComputer methods | |
| double | EstimatedTimeToIntercept (double aSimTime, const WsfTrack &aTrack, double aLaunchDelayTime) override |
Main methods for this class | |
| bool | ComputeLEO_Insertion (double aSimTime, double aAltitude, double aInclination) |
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 } |
| 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 bool | GetDataValue (const WsfTrack &aTrack, const std::string &aName, double &aValue, double aMultiplier) |
| WsfWeapon * | mWeaponPtr |
| 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 |
A launch computer implementation for launch-to-orbit.
| using WsfOrbitalLaunchComputer::OrbitList = std::list<Orbit> |
| using WsfOrbitalLaunchComputer::OrbitListIter = std::list<Orbit>::const_iterator |
|
protected |
| WsfOrbitalLaunchComputer::WsfOrbitalLaunchComputer | ( | ) |
References WsfLaunchComputer::WsfLaunchComputer().
Referenced by Clone(), operator=(), and WsfOrbitalLaunchComputer().
|
default |
References WsfOrbitalLaunchComputer().
|
overridedefault |
|
inlinestatic |
The basic type name (needed by weapon_tools and launch computer processor).
Referenced by WsfLaunchComputerTypes::WsfLaunchComputerTypes().
|
overridevirtual |
Create a copy, or clone, of "this" object.
Reimplemented from WsfLaunchComputer.
References WsfLaunchComputer::WsfLaunchComputer(), and WsfOrbitalLaunchComputer().
| bool WsfOrbitalLaunchComputer::ComputeLEO_Insertion | ( | double | aSimTime, |
| double | aAltitude, | ||
| double | aInclination ) |
References cINCLINATION, WsfArticulatedPart::ClearCueing(), WsfArticulatedPart::ClearTransientCue(), WsfPlatformPart::GetPlatform(), WsfLaunchComputer::GetWeapon(), InterpolateAlongLaunchHeading(), InterpolateOrbits(), WsfOrbitalLaunchComputer::Orbit::mAlt, WsfOrbitalLaunchComputer::Orbit::mInclination, WsfOrbitalLaunchComputer::Orbit::mLat, WsfOrbitalLaunchComputer::Orbit::mLaunchHeading, WsfOrbitalLaunchComputer::Orbit::mLoftAngle, WsfOrbitalLaunchComputer::Orbit::mLon, WsfOrbitalLaunchComputer::Orbit::mTimeOfFlight, platformPtr, WsfLaunchComputer::SetInterceptPoint(), WsfLaunchComputer::SetInterceptTime(), WsfLaunchComputer::SetLauncherBearing(), WsfLaunchComputer::SetLoftAngle(), and WsfLaunchComputer::ShowResults().
Referenced by operator=().
|
static |
|
static |
References ComputeOrbitalElements(), WsfOrbitalLaunchComputer::Orbit::mAlt, WsfOrbitalLaunchComputer::Orbit::mFlightPathAngle, WsfOrbitalLaunchComputer::Orbit::mHeading, WsfOrbitalLaunchComputer::Orbit::mLat, WsfOrbitalLaunchComputer::Orbit::mLon, and WsfOrbitalLaunchComputer::Orbit::mSpeedECI.
Referenced by ComputeOrbitalElements(), GetOrbitalElements(), UT_DEFINE_SCRIPT_METHOD(), and WriteOrbits().
|
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.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void WsfOrbitalLaunchComputer::GetOrbitalElements | ( | double | aResults[6] | ) | const |
|
override |
|
overridevirtual |
Initialize the object.
| aSimTime | The current simulation time. |
| aWeaponPtr | The reference platform to use with default launch calculations. |
Reimplemented from WsfLaunchComputer.
References WsfLaunchComputer::Initialize(), ok, and ReadOrbits().
|
inlineoverrideprotectedvirtual |
Initialize Time To Intercept data for the object. If no TTI data is needed, then override method and simply return true.
Reimplemented from WsfLaunchComputer.
|
protected |
References cALTITUDE, InterpolateOrbits(), WsfOrbitalLaunchComputer::Orbit::mAlt, and WsfOrbitalLaunchComputer::Orbit::mLaunchHeading.
Referenced by ComputeLEO_Insertion().
|
protected |
References cALTITUDE, cINCLINATION, WsfOrbitalLaunchComputer::Orbit::mAlt, WsfOrbitalLaunchComputer::Orbit::mFlightPathAngle, WsfOrbitalLaunchComputer::Orbit::mFuelRemaining, WsfOrbitalLaunchComputer::Orbit::mHeading, WsfOrbitalLaunchComputer::Orbit::mInclination, WsfOrbitalLaunchComputer::Orbit::mLat, WsfOrbitalLaunchComputer::Orbit::mLaunchHeading, WsfOrbitalLaunchComputer::Orbit::mLoftAngle, WsfOrbitalLaunchComputer::Orbit::mLon, WsfOrbitalLaunchComputer::Orbit::mResidualDeltaV, WsfOrbitalLaunchComputer::Orbit::mSpeedECI, WsfOrbitalLaunchComputer::Orbit::mSpeedFixed, WsfOrbitalLaunchComputer::Orbit::mTimeOfFlight, and WsfOrbitalLaunchComputer::Orbit::mTimeRemaining.
Referenced by ComputeLEO_Insertion(), and InterpolateAlongLaunchHeading().
|
delete |
|
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 WsfLaunchComputer::ProcessInput().
|
static |
References WsfOrbitalLaunchComputer::Orbit::mAlt, WsfOrbitalLaunchComputer::Orbit::mFlightPathAngle, WsfOrbitalLaunchComputer::Orbit::mFuelRemaining, WsfOrbitalLaunchComputer::Orbit::mHeading, WsfOrbitalLaunchComputer::Orbit::mInclination, WsfOrbitalLaunchComputer::Orbit::mLat, WsfOrbitalLaunchComputer::Orbit::mLaunchHeading, WsfOrbitalLaunchComputer::Orbit::mLoftAngle, WsfOrbitalLaunchComputer::Orbit::mLon, WsfOrbitalLaunchComputer::Orbit::mResidualDeltaV, WsfOrbitalLaunchComputer::Orbit::mSpeedECI, WsfOrbitalLaunchComputer::Orbit::mSpeedFixed, WsfOrbitalLaunchComputer::Orbit::mTimeOfFlight, and WsfOrbitalLaunchComputer::Orbit::mTimeRemaining.
Referenced by Initialize().
|
static |