|
WSF
|
#include <WsfOrbitalManeuvering.hpp>


Public Member Functions | |
| WsfOrbitalManeuvering ()=default | |
| WsfOrbitalManeuvering (const WsfOrbitalManeuvering &aSrc)=default | |
| WsfOrbitalManeuvering & | operator= (const WsfOrbitalManeuvering &)=delete |
| ~WsfOrbitalManeuvering () override=default | |
| WsfOrbitalManeuvering * | Clone () const override=0 |
| bool | ProcessInput (UtInput &aInput) override |
| virtual bool | Initialize (const UtCalendar &aEpoch) |
| virtual void | SetPlatformAttributes (WsfPlatform *aPlatform) 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 Attributes | |
| static constexpr double | cINFINITE_DELTA_V = std::numeric_limits<double>::max() |
| Constant value representing infinite delta-V; used to compare against values computed for maneuvers. | |
| static constexpr double | cINFINITE_DURATION = std::numeric_limits<double>::max() |
| Constant value representing infinite maneuver duration; used to compare against values computed for maneuvers. | |
Utility methods that are optionally supported in derived classes. | |
| bool | mDebug {false} |
| UtCalendar | mUpdateTime {} |
| virtual double | GetAvailableDeltaV () const |
| virtual double | GetAvailableDuration () const |
| Return the available duration corresponding with the available delta-v. | |
| virtual bool | ReduceAvailableDeltaV_By (double aDeltaV) |
| virtual bool | Maneuver (const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, const UtVec3d &aCommandedDeltaV, UtVec3d &aActualDeltaV) |
| virtual bool | PerformStagingOperation () |
| Default method returns false (see WsfRocketOrbitalManeuvering). | |
| virtual double | GetRequiredDuration (double aDeltaV) const =0 |
| Given a delta-v, return the required time to complete the maneuver. | |
| virtual double | GetRequiredDeltaV (double aDuration) const =0 |
| Given a maneuver duration, return the necessary delta-v. | |
| const UtCalendar & | GetUpdateTime () const |
| double | GetManeuverDuration (const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, double aDeltaV) const |
Additional Inherited Members | |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
Base class for orbital maneuvering functions. It serves both to execute a WsfManeuverSequence and is used by the WsfSpaceMoverBase as well as in a standalone role external to the simulation. In this latter capacity that the maneuver sequence can be verified using only a compatible UtOrbitalPropagatorBase derived class (typically UtOrbitalPropagator).
|
default |
Referenced by Clone(), WsfRocketOrbitalManeuvering::Clone(), WsfSimpleOrbitalManeuvering::Clone(), operator=(), WsfRocketOrbitalManeuvering::operator=(), WsfOrbitalManeuvering(), WsfRocketOrbitalManeuvering::WsfRocketOrbitalManeuvering(), and WsfSimpleOrbitalManeuvering::WsfSimpleOrbitalManeuvering().
|
default |
References WsfOrbitalManeuvering().
|
overridedefault |
|
overridepure virtual |
Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.
Implements WsfObject.
Implemented in WsfRocketOrbitalManeuvering, and WsfSimpleOrbitalManeuvering.
References Initialize(), and WsfOrbitalManeuvering().
|
virtual |
Return the remaining delta-V available. The value is allowed to go negative for verification purposes. Any negative value indicates no more delta-v is available.
Reimplemented in WsfRocketOrbitalManeuvering, and WsfSimpleOrbitalManeuvering.
References cINFINITE_DELTA_V.
Referenced by Initialize(), and Maneuver().
|
virtual |
Return the available duration corresponding with the available delta-v.
Reimplemented in WsfRocketOrbitalManeuvering.
References cINFINITE_DURATION.
| double WsfOrbitalManeuvering::GetManeuverDuration | ( | const UtCalendar & | aEpoch, |
| const WsfOrbitalManeuver & | aManeuver, | ||
| double | aDeltaV ) const |
Get the duration of the current maneuver for the given delta-v. If a duration was specified for the maneuver, that duration will be returned if it exceeds the value calculated by the model.
| aEpoch | The absolute time of execution of the maneuver. |
| aManeuver | The maneuver to evaluate. |
| aDeltaV | The delta-v to be expended in the maneuver. |
References WsfOrbitalEvent::GetDuration(), GetRequiredDuration(), and WsfOrbitalEvent::GetStartTime().
Referenced by Maneuver().
|
pure virtual |
Given a maneuver duration, return the necessary delta-v.
Implemented in WsfRocketOrbitalManeuvering, and WsfSimpleOrbitalManeuvering.
|
pure virtual |
Given a delta-v, return the required time to complete the maneuver.
Implemented in WsfRocketOrbitalManeuvering, and WsfSimpleOrbitalManeuvering.
Referenced by GetManeuverDuration(), and Initialize().
|
inline |
References mUpdateTime.
|
virtual |
Reimplemented in WsfRocketOrbitalManeuvering.
References GetAvailableDeltaV(), WsfObject::GetName(), WsfObject::GetNameId(), GetRequiredDuration(), mDebug, and mUpdateTime.
Referenced by Clone(), WsfRocketOrbitalManeuvering::Initialize(), and WsfSpaceMoverBase::InitializeOrbitalManeuvering().
|
virtual |
Apply a delta-v over a specified period of time.
| aEpoch | The absolute time to which we update the maneuver. |
| aManeuver | The maneuver that is being executed. |
| aCommandedDeltaV | The total delta-v needed to complete the maneuver at the given time. |
| aActualDeltaV | The actual delta-v that can be produced by the mover in the given delta-t. |
References cINFINITE_DURATION, GetAvailableDeltaV(), GetManeuverDuration(), WsfOrbitalEvent::GetStartTime(), WsfObject::GetType(), WsfOrbitalEvent::HasExecuted(), WsfOrbitalEvent::IsFinite(), mUpdateTime, and ReduceAvailableDeltaV_By().
|
delete |
References WsfOrbitalManeuvering().
|
virtual |
Default method returns false (see WsfRocketOrbitalManeuvering).
Reimplemented in WsfRocketOrbitalManeuvering.
References WsfObject::GetType().
|
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. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
Reimplemented in WsfRocketOrbitalManeuvering, and WsfSimpleOrbitalManeuvering.
References mDebug.
Referenced by WsfRocketOrbitalManeuvering::ProcessInput(), and WsfSimpleOrbitalManeuvering::ProcessInput().
|
virtual |
Remove available delta V if it is being monitored. Change any internal state as appropriate.
Reimplemented in WsfRocketOrbitalManeuvering, and WsfSimpleOrbitalManeuvering.
Referenced by Maneuver().
|
inlinevirtual |
Reimplemented in WsfRocketOrbitalManeuvering.
|
staticconstexpr |
Constant value representing infinite delta-V; used to compare against values computed for maneuvers.
Referenced by GetAvailableDeltaV(), and WsfRocketOrbitalManeuvering::Rocket::GetDeltaV().
|
staticconstexpr |
Constant value representing infinite maneuver duration; used to compare against values computed for maneuvers.
Referenced by GetAvailableDuration(), WsfRocketOrbitalManeuvering::Rocket::GetDuration(), and Maneuver().
|
protected |
Referenced by Initialize(), ProcessInput(), and WsfRocketOrbitalManeuvering::ReduceAvailableDeltaV_By().
|
protected |
Referenced by GetUpdateTime(), Initialize(), and Maneuver().