WSF
WsfOrbitalDynamics Class Reference

#include <WsfOrbitalDynamics.hpp>

Inheritance diagram for WsfOrbitalDynamics:
Collaboration diagram for WsfOrbitalDynamics:

Public Member Functions

 WsfOrbitalDynamics (const WsfScenario &aScenario)
 WsfOrbitalDynamics (const WsfOrbitalDynamics &aOther)
 ~WsfOrbitalDynamics () override=default
WsfOrbitalDynamicsoperator= (const WsfOrbitalDynamics &aOther)=delete
WsfOrbitalDynamicsClone () const override
bool ProcessInput (UtInput &aInput) override
const char * GetScriptClassName () const override
UtVec3d ComputeAcceleration (double aMass, const UtCalendar &aTime, const UtVec3d &aPosition, const UtVec3d &aVelocity) const
bool Initialize (const WsfSimulation *aSimulationPtr, const WsfIntegratingPropagator &aPropagator, const UtCalendar &aInitialTime)
const WsfIntegratingPropagatorGetPropagator () const
UtVec3d GetWCS_PositionFromECI (const UtVec3d &aPositionECI) const
UtVec3d GetECI_AccelerationFromWCS (const UtVec3d &aAccelerationWCS) const
UtVec3d GetWCS_VelocityFromECI (const UtVec3d &aPositionECI, const UtVec3d &aVelocityECI) const
UtLLAPos GetLLA_FromWCS (const UtVec3d &aPositionWCS) const
void UpdateConverterTime (const UtCalendar &aTime) const
size_t GetNumTerms () const
void AddTerm (std::unique_ptr< WsfOrbitalDynamicsTerm > aTermPtr)
 Add a term to this set of dynamics.
const WsfOrbitalDynamicsTermGetTerm (size_t aIndex) const
template<class T>
std::vector< T * > GetTerms () const
bool RemoveTerm (size_t aIndex)
void GetTimeConstants (UtCalendar &aTime) const
const WsfScenarioGetScenario () const
const WsfSimulationGetSimulation () 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)

Protected Attributes

UtECI_Conversion mConverter {UtCalendar(), ut::EarthEGM96()}
UtCalendar mInitialEpoch {}
bool mEpochSet {false}

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Constructor & Destructor Documentation

◆ WsfOrbitalDynamics() [1/2]

WsfOrbitalDynamics::WsfOrbitalDynamics ( const WsfScenario & aScenario)
explicit

◆ WsfOrbitalDynamics() [2/2]

WsfOrbitalDynamics::WsfOrbitalDynamics ( const WsfOrbitalDynamics & aOther)

References WsfOrbitalDynamics().

◆ ~WsfOrbitalDynamics()

WsfOrbitalDynamics::~WsfOrbitalDynamics ( )
overridedefault

Member Function Documentation

◆ AddTerm()

void WsfOrbitalDynamics::AddTerm ( std::unique_ptr< WsfOrbitalDynamicsTerm > aTermPtr)

Add a term to this set of dynamics.

Referenced by ProcessInput().

◆ Clone()

WsfOrbitalDynamics * WsfOrbitalDynamics::Clone ( ) const
overridevirtual

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

Implements WsfObject.

References WsfOrbitalDynamics().

◆ ComputeAcceleration()

UtVec3d WsfOrbitalDynamics::ComputeAcceleration ( double aMass,
const UtCalendar & aTime,
const UtVec3d & aPosition,
const UtVec3d & aVelocity ) const

Compute the total acceleration for an object with the specified properties.

This computes the total acceleration for all the terms represented by this dynamical model. The accelerations are computed for an object of the given aMass that occupies the given aPosition with the given aVelocity at the given aTime. The input kinematics and the returned acceleration are all given in the ECI frame.

Parameters
aMass- The mass of the object subject to these dynamics.
aTime- The time at which the acceleration is being computed.
aPosition- The position of the object subject to these dynamics.
aVelocity- The velocity of the object subject to these dynamics.
Returns
- The acceleration.

◆ GetECI_AccelerationFromWCS()

UtVec3d WsfOrbitalDynamics::GetECI_AccelerationFromWCS ( const UtVec3d & aAccelerationWCS) const

References mConverter.

◆ GetLLA_FromWCS()

UtLLAPos WsfOrbitalDynamics::GetLLA_FromWCS ( const UtVec3d & aPositionWCS) const

References mConverter.

◆ GetNumTerms()

size_t WsfOrbitalDynamics::GetNumTerms ( ) const
inline

◆ GetPropagator()

const WsfIntegratingPropagator * WsfOrbitalDynamics::GetPropagator ( ) const
inline

◆ GetScenario()

const WsfScenario & WsfOrbitalDynamics::GetScenario ( ) const
inline

◆ GetScriptClassName()

const char * WsfOrbitalDynamics::GetScriptClassName ( ) const
inlineoverride

◆ GetSimulation()

◆ GetTerm()

const WsfOrbitalDynamicsTerm * WsfOrbitalDynamics::GetTerm ( size_t aIndex) const

Get an orbital dynamics term.

Parameters
aIndex- the index of the term to retrieve.
Returns
- the term, or nullptr if aIndex is out of bounds.

◆ GetTerms()

template<class T>
std::vector< T * > WsfOrbitalDynamics::GetTerms ( ) const
inline

◆ GetTimeConstants()

void WsfOrbitalDynamics::GetTimeConstants ( UtCalendar & aTime) const

◆ GetWCS_PositionFromECI()

UtVec3d WsfOrbitalDynamics::GetWCS_PositionFromECI ( const UtVec3d & aPositionECI) const

References mConverter.

◆ GetWCS_VelocityFromECI()

UtVec3d WsfOrbitalDynamics::GetWCS_VelocityFromECI ( const UtVec3d & aPositionECI,
const UtVec3d & aVelocityECI ) const

References mConverter.

◆ Initialize()

bool WsfOrbitalDynamics::Initialize ( const WsfSimulation * aSimulationPtr,
const WsfIntegratingPropagator & aPropagator,
const UtCalendar & aInitialTime )

References ok.

◆ operator=()

WsfOrbitalDynamics & WsfOrbitalDynamics::operator= ( const WsfOrbitalDynamics & aOther)
delete

References WsfOrbitalDynamics().

◆ ProcessInput()

bool WsfOrbitalDynamics::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 WsfObject.

References AddTerm(), WsfObjectTypeList< T >::Find(), and WsfOrbitalDynamicsTermTypes::Get().

◆ RemoveTerm()

bool WsfOrbitalDynamics::RemoveTerm ( size_t aIndex)

Remove an orbital dynamics term.

Parameters
aIndex- the index of the term to remove.
Returns
- true if the term was successfully removed; false otherwise.

◆ UpdateConverterTime()

void WsfOrbitalDynamics::UpdateConverterTime ( const UtCalendar & aTime) const

References mConverter, mEpochSet, and mInitialEpoch.

Member Data Documentation

◆ mConverter

UtECI_Conversion WsfOrbitalDynamics::mConverter {UtCalendar(), ut::EarthEGM96()}
mutableprotected

◆ mEpochSet

bool WsfOrbitalDynamics::mEpochSet {false}
mutableprotected

Referenced by UpdateConverterTime().

◆ mInitialEpoch

UtCalendar WsfOrbitalDynamics::mInitialEpoch {}
mutableprotected

Referenced by UpdateConverterTime().


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