WSF
wsf::space::LibrationPoint Class Reference

#include <WsfLibrationPoint.hpp>

Public Types

enum class  System { cSUN_EARTH , cEARTH_MOON , cSUN_JUPITER , cUNKNOWN }
 The supported primary-secondary body pairs. More...
enum class  Point {
  cL1 , cL2 , cL3 , cL4 ,
  cL5 , cUNKNOWN
}
 Identifiers for the five libration points. More...

Public Member Functions

 LibrationPoint (System aSystem)
 ~LibrationPoint ()=default
System GetSystem () const
 Return the system for which this object was created.
UtVec3d GetPositionECI (Point aPoint, const UtCalendar &aEpoch) const
UtVec3d GetVelocityECI (Point aPoint, const UtCalendar &aEpoch) const
UtVec3d TransformPositionECItoRF (const UtCalendar &aEpoch, const UtVec3d &aPositionECI) const
UtVec3d TransformPositionRFtoECI (const UtCalendar &aEpoch, const UtVec3d &aPositionRF) const
UtVec3d TransformVelocityECItoRF (const UtCalendar &aEpoch, const UtVec3d &aPositionECI, const UtVec3d &aVelocityECI) const
UtVec3d TransformVelocityRFtoECI (const UtCalendar &aEpoch, const UtVec3d &aPositionRF, const UtVec3d &aVelocityRF) const
double GetSystemPeriod () const

Static Public Member Functions

static System GetSystemFromIdentifier (const std::string &aIdentifier)
static std::string GetIdentifierFromSystem (System aSystem)
static std::vector< std::string > GetSystemIdentifiers ()
static Point GetPointFromIdentifier (const std::string &aIdentifier)
static std::string GetIdentifierFromPoint (Point aPoint)
static std::vector< std::string > GetPointIdentifiers ()
static bool ValidLibrationPoint (System aSystem, Point aPoint)

Detailed Description

This class provides computation for the libration points of a system.

This class uses two reference frames: the AFSIM standard ECI frame, and the rotating frame (RF). The rotating frame has its origin at the primary body, an x-axis pointing toward the secondary body, a z-axis normal to the plane of the orbit in the direction of the orbital angular momentum, and a y-axis that completes the right-handed triple.

Member Enumeration Documentation

◆ Point

Identifiers for the five libration points.

Enumerator
cL1 
cL2 
cL3 
cL4 
cL5 
cUNKNOWN 

◆ System

The supported primary-secondary body pairs.

Enumerator
cSUN_EARTH 
cEARTH_MOON 
cSUN_JUPITER 
cUNKNOWN 

Constructor & Destructor Documentation

◆ LibrationPoint()

wsf::space::LibrationPoint::LibrationPoint ( System aSystem)
explicit

◆ ~LibrationPoint()

wsf::space::LibrationPoint::~LibrationPoint ( )
default

Member Function Documentation

◆ GetIdentifierFromPoint()

std::string wsf::space::LibrationPoint::GetIdentifierFromPoint ( Point aPoint)
static

References cL1, cL2, cL3, cL4, cL5, and cUNKNOWN.

Referenced by GetPointIdentifiers().

◆ GetIdentifierFromSystem()

std::string wsf::space::LibrationPoint::GetIdentifierFromSystem ( System aSystem)
static

◆ GetPointFromIdentifier()

LibrationPoint::Point wsf::space::LibrationPoint::GetPointFromIdentifier ( const std::string & aIdentifier)
static

◆ GetPointIdentifiers()

std::vector< std::string > wsf::space::LibrationPoint::GetPointIdentifiers ( )
static

References cL1, cL2, cL3, cL4, cL5, and GetIdentifierFromPoint().

◆ GetPositionECI()

UtVec3d wsf::space::LibrationPoint::GetPositionECI ( Point aPoint,
const UtCalendar & aEpoch ) const

Get the ECI position of a libration point.

Returns the position of the given aPoint at the given aEpoch in ECI coordinates.

Parameters
aPoint- Identifier for which point's position is needed.
aEpoch- The date and time at which the point's position is needed.
Returns
- The ECI position of the point.

◆ GetSystem()

System wsf::space::LibrationPoint::GetSystem ( ) const
inline

Return the system for which this object was created.

◆ GetSystemFromIdentifier()

LibrationPoint::System wsf::space::LibrationPoint::GetSystemFromIdentifier ( const std::string & aIdentifier)
static

◆ GetSystemIdentifiers()

std::vector< std::string > wsf::space::LibrationPoint::GetSystemIdentifiers ( )
static

◆ GetSystemPeriod()

double wsf::space::LibrationPoint::GetSystemPeriod ( ) const

◆ GetVelocityECI()

UtVec3d wsf::space::LibrationPoint::GetVelocityECI ( Point aPoint,
const UtCalendar & aEpoch ) const

Get the ECI velocity of a libration point.

Returns the velocity of the given aPoint at the given aEpoch in ECI coordinates.

Parameters
aPoint- Identifier for which point's velocity is needed.
aEpoch- The date and time at which the point's velocity is needed.
Returns
- The ECI velocity of the point.

References pos, and vel.

◆ TransformPositionECItoRF()

UtVec3d wsf::space::LibrationPoint::TransformPositionECItoRF ( const UtCalendar & aEpoch,
const UtVec3d & aPositionECI ) const

Transform a position into the rotating frame.

This will transform the given aPositionECI into the rotating frame for the system at the given aEpoch.

Parameters
aEpoch- The epoch at which to perform the transformation.
aPositionECI- The ECI position to transform into the rotating frame.
Returns
- The corresponding RF position.

◆ TransformPositionRFtoECI()

UtVec3d wsf::space::LibrationPoint::TransformPositionRFtoECI ( const UtCalendar & aEpoch,
const UtVec3d & aPositionRF ) const

Transform a position from the rotating frame.

This will transform the given aPositionRF into the ECI frame. The provided aPositionRF is taken to be valid at the given aEpoch.

Parameters
aEpoch- The epoch at which to perform the transformation.
aPositionRF- The RF position to transform into the ECI frame.
Returns
- The corresponding ECI position.

◆ TransformVelocityECItoRF()

UtVec3d wsf::space::LibrationPoint::TransformVelocityECItoRF ( const UtCalendar & aEpoch,
const UtVec3d & aPositionECI,
const UtVec3d & aVelocityECI ) const

Transform a velocity into the rotating frame.

This will transform the given aVelocityECI, taken to be for an object at the given aPositionECI, and at the given aEpoch, into the rotating frame.

Parameters
aEpoch- The epoch at which to perform the transformation.
aPositionECI- The ECI position of the object for which the given aVelocityECI applies.
aVelocityECI- The ECI velocity to transform.
Returns
- The corresponding RF velocity.

◆ TransformVelocityRFtoECI()

UtVec3d wsf::space::LibrationPoint::TransformVelocityRFtoECI ( const UtCalendar & aEpoch,
const UtVec3d & aPositionRF,
const UtVec3d & aVelocityRF ) const

Transform a velocity from the rotating frame.

This will transform the given aVelocityRF, taken to be for an object at the given aPositionRF, and at the given aEpoch, into the ECI frame.

Parameters
aEpoch- The epoch at which to perform the transformation.
aPositionRF- The RF position of the object for which the given aVelocityRF applies.
aVelocityRF- The RF velocity to transform.
Returns
- The corresponding RF velocity.

◆ ValidLibrationPoint()


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