WSF
WsfSimpleOrbitalManeuvering Class Reference

#include <WsfSimpleOrbitalManeuvering.hpp>

Inheritance diagram for WsfSimpleOrbitalManeuvering:
Collaboration diagram for WsfSimpleOrbitalManeuvering:

Public Member Functions

 WsfSimpleOrbitalManeuvering ()=default
 WsfSimpleOrbitalManeuvering (const WsfSimpleOrbitalManeuvering &aSrc)
WsfSimpleOrbitalManeuveringoperator= (const WsfSimpleOrbitalManeuvering &)=delete
 ~WsfSimpleOrbitalManeuvering () override
bool ProcessInput (UtInput &aInput) override
WsfOrbitalManeuveringClone () const override
double GetAvailableDeltaV () const override
double GetRequiredDuration (double aDeltaV) const override
double GetRequiredDeltaV (double aDuration) const override
bool ReduceAvailableDeltaV_By (double aDeltaV) override
Public Member Functions inherited from WsfOrbitalManeuvering
 WsfOrbitalManeuvering ()=default
 WsfOrbitalManeuvering (const WsfOrbitalManeuvering &aSrc)=default
WsfOrbitalManeuveringoperator= (const WsfOrbitalManeuvering &)=delete
 ~WsfOrbitalManeuvering () override=default
virtual bool Initialize (const UtCalendar &aEpoch)
virtual void SetPlatformAttributes (WsfPlatform *aPlatform) const
virtual double GetAvailableDuration () const
 Return the available duration corresponding with the available delta-v.
virtual bool Maneuver (const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, const UtVec3d &aCommandedDeltaV, UtVec3d &aActualDeltaV)
virtual bool PerformStagingOperation ()
 Default method returns false (see WsfRocketOrbitalManeuvering).
const UtCalendar & GetUpdateTime () const
double GetManeuverDuration (const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, double aDeltaV) 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)

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Static Public Attributes inherited from WsfOrbitalManeuvering
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.
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
bool mDebug {false}
UtCalendar mUpdateTime {}

Detailed Description

Orbital maneuvering using a specified delta-V budget and constant acceleration. This type of orbital maneuvering is applicable to an ion thruster.

Constructor & Destructor Documentation

◆ WsfSimpleOrbitalManeuvering() [1/2]

WsfSimpleOrbitalManeuvering::WsfSimpleOrbitalManeuvering ( )
default

◆ WsfSimpleOrbitalManeuvering() [2/2]

WsfSimpleOrbitalManeuvering::WsfSimpleOrbitalManeuvering ( const WsfSimpleOrbitalManeuvering & aSrc)

◆ ~WsfSimpleOrbitalManeuvering()

WsfSimpleOrbitalManeuvering::~WsfSimpleOrbitalManeuvering ( )
override

Member Function Documentation

◆ Clone()

WsfOrbitalManeuvering * WsfSimpleOrbitalManeuvering::Clone ( ) const
inlineoverridevirtual

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

Implements WsfOrbitalManeuvering.

References WsfOrbitalManeuvering::WsfOrbitalManeuvering(), and WsfSimpleOrbitalManeuvering().

◆ GetAvailableDeltaV()

double WsfSimpleOrbitalManeuvering::GetAvailableDeltaV ( ) const
overridevirtual

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 from WsfOrbitalManeuvering.

◆ GetRequiredDeltaV()

double WsfSimpleOrbitalManeuvering::GetRequiredDeltaV ( double aDuration) const
overridevirtual

Return the delta-v necessary to execute a maneuver with the specified duration.

Parameters
aDurationThe duration for which the equivalent delta-v would be expended.
Returns
The delta-v that would be expended to complete the maneuver. If there is insufficient delta-v WsfOrbitalManeuvering::cINFINITE_DELTA_V is returned.

Implements WsfOrbitalManeuvering.

◆ GetRequiredDuration()

double WsfSimpleOrbitalManeuvering::GetRequiredDuration ( double aDeltaV) const
overridevirtual

Return how long it will take to execute a maneuver with the specified delta-V.

Parameters
aDeltaVThe delta-V to expend in the maneuver.
Returns
The time necessary to complete the maneuver.

Implements WsfOrbitalManeuvering.

◆ operator=()

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

◆ ProcessInput()

bool WsfSimpleOrbitalManeuvering::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 WsfOrbitalManeuvering.

References WsfOrbitalManeuvering::ProcessInput().

◆ ReduceAvailableDeltaV_By()

bool WsfSimpleOrbitalManeuvering::ReduceAvailableDeltaV_By ( double aDeltaV)
overridevirtual

Remove available delta V if it is being monitored. Change any internal state as appropriate.

Returns
true if the delta-v could be removed; false otherwise.

Reimplemented from WsfOrbitalManeuvering.


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