siderust-cpp 0.8.0
Header-only C++ wrapper for siderust
Loading...
Searching...
No Matches
siderust::RuntimeEphemeris Class Reference

Runtime-loaded JPL DE4xx ephemeris. More...

#include <siderust/runtime_ephemeris.hpp>

Public Member Functions

 RuntimeEphemeris (const std::string &path)
 Load a runtime ephemeris from a BSP file on disk.
 
 RuntimeEphemeris (const uint8_t *data, size_t len)
 Load a runtime ephemeris from raw BSP bytes in memory.
 
 RuntimeEphemeris (RuntimeEphemeris &&other) noexcept
 
RuntimeEphemerisoperator= (RuntimeEphemeris &&other) noexcept
 
 RuntimeEphemeris (const RuntimeEphemeris &)=delete
 
RuntimeEphemerisoperator= (const RuntimeEphemeris &)=delete
 
 ~RuntimeEphemeris ()
 
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > sun_barycentric (const Time< TT, JD > &jd) const
 Sun's barycentric position (EclipticMeanJ2000, AU).
 
cartesian::position::GeoBarycentric< qtty::AstronomicalUnit > earth_barycentric (const Time< TT, JD > &jd) const
 Earth's barycentric position (EclipticMeanJ2000, AU).
 
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > earth_heliocentric (const Time< TT, JD > &jd) const
 Earth's heliocentric position (EclipticMeanJ2000, AU).
 
cartesian::position::MoonGeocentric< qtty::Kilometer > moon_geocentric (const Time< TT, JD > &jd) const
 Moon's geocentric position (EclipticMeanJ2000, km).
 
CartesianVelocity earth_barycentric_velocity (const Time< TT, JD > &jd) const
 Earth's barycentric velocity (EclipticMeanJ2000, AU/day).
 
 operator bool () const noexcept
 Check whether this handle is valid (non-null).
 

Detailed Description

Runtime-loaded JPL DE4xx ephemeris.

This class wraps an opaque Rust RuntimeEphemeris handle. It loads a BSP file once (from a file path or a memory buffer) and then provides the same five fundamental position/velocity queries as the compile-time ephemeris::* free functions.

The class is move-only — use std::move to transfer ownership.

Examples
12_runtime_ephemeris.cpp.

Definition at line 56 of file runtime_ephemeris.hpp.

Constructor & Destructor Documentation

◆ RuntimeEphemeris() [1/4]

siderust::RuntimeEphemeris::RuntimeEphemeris ( const std::string &  path)
inlineexplicit

Load a runtime ephemeris from a BSP file on disk.

Parameters
pathFilesystem path to a JPL DE4xx BSP file.
Exceptions
DataLoadErrorif the file cannot be read or parsed.

Definition at line 65 of file runtime_ephemeris.hpp.

References siderust::check_status().

◆ RuntimeEphemeris() [2/4]

siderust::RuntimeEphemeris::RuntimeEphemeris ( const uint8_t *  data,
size_t  len 
)
inline

Load a runtime ephemeris from raw BSP bytes in memory.

Parameters
dataPointer to BSP data.
lenLength in bytes.
Exceptions
DataLoadErrorif the data cannot be parsed.

Definition at line 77 of file runtime_ephemeris.hpp.

References siderust::check_status().

◆ RuntimeEphemeris() [3/4]

siderust::RuntimeEphemeris::RuntimeEphemeris ( RuntimeEphemeris &&  other)
inlinenoexcept

Definition at line 85 of file runtime_ephemeris.hpp.

◆ RuntimeEphemeris() [4/4]

siderust::RuntimeEphemeris::RuntimeEphemeris ( const RuntimeEphemeris )
delete

◆ ~RuntimeEphemeris()

siderust::RuntimeEphemeris::~RuntimeEphemeris ( )
inline

Definition at line 104 of file runtime_ephemeris.hpp.

Member Function Documentation

◆ earth_barycentric()

cartesian::position::GeoBarycentric< qtty::AstronomicalUnit > siderust::RuntimeEphemeris::earth_barycentric ( const Time< TT, JD > &  jd) const
inline

Earth's barycentric position (EclipticMeanJ2000, AU).

Definition at line 123 of file runtime_ephemeris.hpp.

References siderust::check_status(), and siderust::cartesian::Position< C, F, U >::from_c().

◆ earth_barycentric_velocity()

CartesianVelocity siderust::RuntimeEphemeris::earth_barycentric_velocity ( const Time< TT, JD > &  jd) const
inline

Earth's barycentric velocity (EclipticMeanJ2000, AU/day).

Returns the first-order time derivative of the Earth's barycentric position as provided by the loaded JPL DE kernel.

Definition at line 158 of file runtime_ephemeris.hpp.

References siderust::check_status(), and siderust::CartesianVelocity::from_c().

◆ earth_heliocentric()

cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > siderust::RuntimeEphemeris::earth_heliocentric ( const Time< TT, JD > &  jd) const
inline

Earth's heliocentric position (EclipticMeanJ2000, AU).

Definition at line 134 of file runtime_ephemeris.hpp.

References siderust::check_status(), and siderust::cartesian::Position< C, F, U >::from_c().

◆ moon_geocentric()

cartesian::position::MoonGeocentric< qtty::Kilometer > siderust::RuntimeEphemeris::moon_geocentric ( const Time< TT, JD > &  jd) const
inline

Moon's geocentric position (EclipticMeanJ2000, km).

Definition at line 145 of file runtime_ephemeris.hpp.

References siderust::check_status(), and siderust::cartesian::Position< C, F, U >::from_c().

◆ operator bool()

siderust::RuntimeEphemeris::operator bool ( ) const
inlineexplicitnoexcept

Check whether this handle is valid (non-null).

Definition at line 170 of file runtime_ephemeris.hpp.

◆ operator=() [1/2]

RuntimeEphemeris & siderust::RuntimeEphemeris::operator= ( const RuntimeEphemeris )
delete

◆ operator=() [2/2]

RuntimeEphemeris & siderust::RuntimeEphemeris::operator= ( RuntimeEphemeris &&  other)
inlinenoexcept

Definition at line 89 of file runtime_ephemeris.hpp.

◆ sun_barycentric()

cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > siderust::RuntimeEphemeris::sun_barycentric ( const Time< TT, JD > &  jd) const
inline

Sun's barycentric position (EclipticMeanJ2000, AU).

Definition at line 112 of file runtime_ephemeris.hpp.

References siderust::check_status(), and siderust::cartesian::Position< C, F, U >::from_c().


The documentation for this class was generated from the following file: