29 siderust_proper_motion_t
to_c()
const {
31 static_cast<siderust_ra_convention_t
>(
convention)};
67 return {qtty::Kilogram(c.mass_kg), qtty::Kilometer(c.radius_km),
75 siderust_planet_t out;
81 siderust_planet_t out;
87 siderust_planet_t out;
93 siderust_planet_t out;
99 siderust_planet_t out;
105 siderust_planet_t out;
111 siderust_planet_t out;
117 siderust_planet_t out;
177 SiderustStar *m_handle =
nullptr;
179 explicit Star(SiderustStar *h) : m_handle(h) {}
185 siderust_star_free(m_handle);
189 Star(
Star &&o) noexcept : m_handle(o.m_handle) { o.m_handle =
nullptr; }
193 siderust_star_free(m_handle);
194 m_handle = o.m_handle;
195 o.m_handle =
nullptr;
203 explicit operator bool()
const {
return m_handle !=
nullptr; }
206 const SiderustStar *
c_handle()
const {
return m_handle; }
217 SiderustStar *h =
nullptr;
233 std::optional<ProperMotion> pm = std::nullopt) {
234 SiderustStar *h =
nullptr;
235 const siderust_proper_motion_t *pm_ptr =
nullptr;
236 siderust_proper_motion_t pm_c{};
237 if (pm.has_value()) {
244 position.
dec().value(), epoch.value(), pm_ptr, &h),
253 uintptr_t written = 0;
254 check_status(siderust_star_name(m_handle, buf,
sizeof(buf), &written),
"Star::name");
255 return std::string(buf, written);
258 double distance_ly()
const {
return siderust_star_distance_ly(m_handle); }
259 double mass_solar()
const {
return siderust_star_mass_solar(m_handle); }
260 double radius_solar()
const {
return siderust_star_radius_solar(m_handle); }
RAII handle to a Star (opaque Rust object).
Star & operator=(const Star &)=delete
Star & operator=(Star &&o) noexcept
double mass_solar() const
static Star create(std::string name, StellarProperties properties, spherical::direction::ICRS position, Time< TT, JD > epoch, std::optional< ProperMotion > pm=std::nullopt)
Create a custom star.
const SiderustStar * c_handle() const
Access the raw C handle (for passing to altitude functions).
double distance_ly() const
Star(const Star &)=delete
static Star catalog(const std::string &name)
Look up a star from the built-in catalog.
double luminosity_solar() const
double radius_solar() const
Coordinate module umbrella.
Error handling and utility base for the siderust C++ wrapper.
Planet make_planet_uranus()
Planet make_planet_earth()
Planet make_planet_saturn()
Planet make_planet_mars()
Planet make_planet_mercury()
Planet make_planet_jupiter()
Planet make_planet_neptune()
Planet make_planet_venus()
tempoch::EncodedTime< Scale, Format > Time
const Star & BETELGEUSE()
void check_status(siderust_status_t status, const char *operation)
Orbit model wrappers and propagation helpers.
double deg_per_day() const
static KeplerianOrbit from_c(const siderust_orbit_t &c)
Planet data (value type, copyable).
qtty::Kilometer radius
Mean equatorial radius.
qtty::Kilogram mass
Planet mass.
static Planet from_c(const siderust_planet_t &c)
Proper motion for a star (equatorial).
AngularRate ra
RA proper motion.
AngularRate dec
Dec proper motion.
RaConvention convention
RA rate convention.
siderust_proper_motion_t to_c() const
SolarLuminosity luminosity
A direction on the celestial sphere, compile-time tagged by frame.