Skip to content

Namespace astrea::astro::frames

Namespace List > astrea > astro > frames

Namespaces

Type Name
namespace callisto
namespace deimos
namespace dynamic
namespace earth
namespace earth_barycenter
namespace europa
namespace ganymede
namespace iapetus
namespace io
namespace jupiter
namespace jupiter_barycenter
namespace mars
namespace mars_barycenter
namespace mercury
namespace mercury_barycenter
namespace moon
namespace neptune
namespace neptune_barycenter
namespace oberon
namespace phobos
namespace rhea
namespace saturn
namespace saturn_barycenter
namespace solar_system_barycenter
namespace sun
namespace titan
namespace titania
namespace triton
namespace uranus
namespace uranus_barycenter
namespace venus
namespace venus_barycenter

Classes

Type Name
class EastNorthUp
Class representing the East, North, Up (ENU) frame.
class LocalHorizontalLocalVertical
Class representing the Local Horizontal, Local Vertical (LVLH) frame.
class RadialInTrackCrossTrack
Class representing the Radial, In-Track, Cross-Track (RIC) frame.
class VelocityNormalBinormal
Class representing the Velocity, Normal, Binormal (VNB) frame.

Public Functions

Type Name
Frame_T get_center_offset (const Date & date)
requires (HasSameOrigin< Frame_T, Frame_U >)
Get the center offset between two frames at a given date.
requires (!HasSameOrigin< Frame_T, Frame_U > &&HasSameAxis< Frame_T, Frame_U >)
Get the center offset between two frames at a given date.
CartesianVector< Value_T, Frame_U > rotate_vector_into_frame (const CartesianVector< Value_T, Frame_T > & vec, const Date & date)
Rotate a vector from one frame to another at a given date using the Direction Cosine Matrix (DCM).

Public Functions Documentation

function get_center_offset

Frame_T astrea::astro::frames::get_center_offset (
    const Date & date
) 

function requires

Get the center offset between two frames at a given date.

template<typename Frame_T, typename Frame_U>
astrea::astro::frames::requires (
    HasSameOrigin< Frame_T, Frame_U >
) 

If the frames share the same origin, the offset is zero. If the frames share the same axis but have different origins, the offset is the relative position between the two origins in Frame_T. All calculations are done in the solar_system_barycenter::icrf frame.

Template parameters:

  • Frame_T The first frame type.
  • Frame_U The second frame type.

Parameters:

  • date The date at which to calculate the offset.

Returns:

CartesianVector<Distance, Frame_T> The offset vector from Frame_T to Frame_U expressed in Frame_T.


function requires

Get the center offset between two frames at a given date.

template<typename Frame_T, typename Frame_U>
astrea::astro::frames::requires (
    !HasSameOrigin< Frame_T, Frame_U > &&HasSameAxis< Frame_T, Frame_U >
) 

If the frames share the same origin, the offset is zero. If the frames share the same axis but have different origins, the offset is the relative position between the two origins in Frame_T. All calculations are done in the solar_system_barycenter::icrf frame.

Template parameters:

  • Frame_T The first frame type.
  • Frame_U The second frame type.

Parameters:

  • date The date at which to calculate the offset.

Returns:

CartesianVector<Distance, Frame_T> The offset vector from Frame_T to Frame_U expressed in Frame_T.


function rotate_vector_into_frame

Rotate a vector from one frame to another at a given date using the Direction Cosine Matrix (DCM).

template<typename Value_T, typename Frame_T, typename Frame_U>
CartesianVector < Value_T, Frame_U > astrea::astro::frames::rotate_vector_into_frame (
    const CartesianVector < Value_T, Frame_T > & vec,
    const Date & date
) 

Template parameters:

  • Value_T The type of the vector components (e.g., Distance, Velocity).
  • Frame_T The source frame type.
  • Frame_U The target frame type.

Parameters:

  • vec The vector to rotate.
  • date The date at which to perform the rotation.

Returns:

CartesianVector<Value_T, Frame_U> A new CartesianVector in the target frame.

Exception:

  • std::runtime_error If the frames do not share the same origin or if the DCM cannot be obtained.

Note:

This function multiplies the vector by the DCM and does NOT return a vector with respect to the new frame. It is the user's responsibility to understand if this makes sense or not.



The documentation for this class was generated from the following file astrea/astro/astro/frames/instances/body_centered_inertial_frames.hpp