siderust-cpp 0.8.0
Header-only C++ wrapper for siderust
Loading...
Searching...
No Matches
ephemeris.hpp
Go to the documentation of this file.
1#pragma once
2
11#include "coordinates.hpp"
12#include "ffi_core.hpp"
13#include "time.hpp"
14
15namespace siderust {
16
17namespace ephemeris {
18
19// ============================================================================
20// Typed API (new) — return cartesian::Position<C, F, U>
21// ============================================================================
22
28 siderust_cartesian_pos_t out;
29 check_status(siderust_vsop87_sun_barycentric(jd.value(), &out), "ephemeris::sun_barycentric");
31}
32
38 siderust_cartesian_pos_t out;
39 check_status(siderust_vsop87_earth_barycentric(jd.value(), &out), "ephemeris::earth_barycentric");
41}
42
48 siderust_cartesian_pos_t out;
49 check_status(siderust_vsop87_earth_heliocentric(jd.value(), &out),
50 "ephemeris::earth_heliocentric");
52}
53
59 siderust_cartesian_pos_t out;
60 check_status(siderust_vsop87_mars_heliocentric(jd.value(), &out), "ephemeris::mars_heliocentric");
62}
63
69 siderust_cartesian_pos_t out;
70 check_status(siderust_vsop87_mars_barycentric(jd.value(), &out), "ephemeris::mars_barycentric");
72}
73
79 siderust_cartesian_pos_t out;
80 check_status(siderust_vsop87_venus_heliocentric(jd.value(), &out),
81 "ephemeris::venus_heliocentric");
83}
84
90 siderust_cartesian_pos_t out;
91 check_status(siderust_vsop87_mercury_heliocentric(jd.value(), &out),
92 "ephemeris::mercury_heliocentric");
94}
95
101 siderust_cartesian_pos_t out;
102 check_status(siderust_vsop87_mercury_barycentric(jd.value(), &out),
103 "ephemeris::mercury_barycentric");
105}
106
112 siderust_cartesian_pos_t out;
113 check_status(siderust_vsop87_venus_barycentric(jd.value(), &out), "ephemeris::venus_barycentric");
115}
116
122 siderust_cartesian_pos_t out;
123 check_status(siderust_vsop87_jupiter_heliocentric(jd.value(), &out),
124 "ephemeris::jupiter_heliocentric");
126}
127
133 siderust_cartesian_pos_t out;
134 check_status(siderust_vsop87_jupiter_barycentric(jd.value(), &out),
135 "ephemeris::jupiter_barycentric");
137}
138
144 siderust_cartesian_pos_t out;
145 check_status(siderust_vsop87_saturn_heliocentric(jd.value(), &out),
146 "ephemeris::saturn_heliocentric");
148}
149
155 siderust_cartesian_pos_t out;
156 check_status(siderust_vsop87_saturn_barycentric(jd.value(), &out),
157 "ephemeris::saturn_barycentric");
159}
160
166 siderust_cartesian_pos_t out;
167 check_status(siderust_vsop87_uranus_heliocentric(jd.value(), &out),
168 "ephemeris::uranus_heliocentric");
170}
171
177 siderust_cartesian_pos_t out;
178 check_status(siderust_vsop87_uranus_barycentric(jd.value(), &out),
179 "ephemeris::uranus_barycentric");
181}
182
188 siderust_cartesian_pos_t out;
189 check_status(siderust_vsop87_neptune_heliocentric(jd.value(), &out),
190 "ephemeris::neptune_heliocentric");
192}
193
199 siderust_cartesian_pos_t out;
200 check_status(siderust_vsop87_neptune_barycentric(jd.value(), &out),
201 "ephemeris::neptune_barycentric");
203}
204
210 siderust_cartesian_pos_t out;
211 check_status(siderust_vsop87_moon_geocentric(jd.value(), &out), "ephemeris::moon_geocentric");
213}
214
215} // namespace ephemeris
216
217} // namespace siderust
Coordinate module umbrella.
Error handling and utility base for the siderust C++ wrapper.
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > saturn_heliocentric(const Time< TT, JD > &jd)
Saturn's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > venus_heliocentric(const Time< TT, JD > &jd)
Venus's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:78
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > neptune_barycentric(const Time< TT, JD > &jd)
Neptune's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > jupiter_barycentric(const Time< TT, JD > &jd)
Jupiter's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::GeoBarycentric< qtty::AstronomicalUnit > earth_barycentric(const Time< TT, JD > &jd)
Earth's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:37
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > mercury_barycentric(const Time< TT, JD > &jd)
Mercury's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > mercury_heliocentric(const Time< TT, JD > &jd)
Mercury's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:89
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > neptune_heliocentric(const Time< TT, JD > &jd)
Neptune's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > mars_barycentric(const Time< TT, JD > &jd)
Mars's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:68
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > saturn_barycentric(const Time< TT, JD > &jd)
Saturn's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > jupiter_heliocentric(const Time< TT, JD > &jd)
Jupiter's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::MoonGeocentric< qtty::Kilometer > moon_geocentric(const Time< TT, JD > &jd)
Moon's geocentric position (EclipticMeanJ2000, km) via ELP2000.
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > uranus_heliocentric(const Time< TT, JD > &jd)
Uranus's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > sun_barycentric(const Time< TT, JD > &jd)
Sun's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:27
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > mars_heliocentric(const Time< TT, JD > &jd)
Mars's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:58
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > uranus_barycentric(const Time< TT, JD > &jd)
Uranus's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::HelioBarycentric< qtty::AstronomicalUnit > venus_barycentric(const Time< TT, JD > &jd)
Venus's barycentric position (EclipticMeanJ2000, AU) via VSOP87.
cartesian::position::EclipticMeanJ2000< qtty::AstronomicalUnit > earth_heliocentric(const Time< TT, JD > &jd)
Earth's heliocentric position (EclipticMeanJ2000, AU) via VSOP87.
Definition ephemeris.hpp:47
tempoch::EncodedTime< Scale, Format > Time
Definition time.hpp:36
void check_status(siderust_status_t status, const char *operation)
Definition ffi_core.hpp:111
A 3D Cartesian position, compile-time tagged by center, frame, unit.
static Position from_c(const siderust_cartesian_pos_t &c)
Create from C FFI struct (ignoring runtime frame/center - trust the type).
Public siderust time tags and typed time/period aliases.