32 siderust_proper_motion_t
to_c()
const {
34 static_cast<siderust_ra_convention_t
>(
convention)};
56 c.lon_ascending_node_deg, c.arg_perihelion_deg,
57 c.mean_anomaly_deg, c.epoch_jd};
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;
123 siderust_planet_t out;
159 SiderustStar* m_handle =
nullptr;
161 explicit Star(SiderustStar* h) : m_handle(h) {}
167 siderust_star_free(m_handle);
171 Star(
Star&& o) noexcept : m_handle(o.m_handle) { o.m_handle =
nullptr; }
175 siderust_star_free(m_handle);
176 m_handle = o.m_handle;
177 o.m_handle =
nullptr;
185 explicit operator bool()
const {
return m_handle !=
nullptr; }
188 const SiderustStar*
c_handle()
const {
return m_handle; }
199 SiderustStar* h =
nullptr;
226 const std::optional<ProperMotion>& pm = std::nullopt) {
227 SiderustStar* h =
nullptr;
228 const siderust_proper_motion_t* pm_ptr =
nullptr;
229 siderust_proper_motion_t pm_c{};
230 if (pm.has_value()) {
245 uintptr_t written = 0;
246 check_status(siderust_star_name(m_handle, buf,
sizeof(buf), &written),
248 return std::string(buf, written);
251 double distance_ly()
const {
return siderust_star_distance_ly(m_handle); }
252 double mass_solar()
const {
return siderust_star_mass_solar(m_handle); }
253 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
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.
static Star create(const std::string &name, double distance_ly, double mass_solar, double radius_solar, double luminosity_solar, double ra_deg, double dec_deg, double epoch_jd, const std::optional< ProperMotion > &pm=std::nullopt)
Create a custom star.
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()
void check_status(siderust_status_t status, const char *operation)
Keplerian orbital elements.
double semi_major_axis_au
static Orbit from_c(const siderust_orbit_t &c)
double lon_ascending_node_deg
double arg_perihelion_deg
Planet data (value type, copyable).
static Planet from_c(const siderust_planet_t &c)
Proper motion for a star (equatorial).
double pm_dec_deg_yr
Dec proper motion (deg/yr).
ProperMotion(double ra, double dec, RaConvention conv=RaConvention::MuAlphaStar)
double pm_ra_deg_yr
RA proper motion (deg/yr).
RaConvention convention
RA rate convention.
siderust_proper_motion_t to_c() const