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

Namespaces

namespace  body
 
namespace  cartesian
 
namespace  centers
 
namespace  constants
 
namespace  coordinates
 
namespace  detail
 
namespace  ephemeris
 
namespace  frames
 
namespace  icrs_altitude
 
namespace  lambert
 
namespace  moon
 
namespace  oem
 
namespace  sgp4
 
namespace  spherical
 
namespace  star_altitude
 
namespace  sun
 
namespace  tle
 

Classes

class  AllocationFailedError
 
struct  AngularRate
 
class  AstroContext
 
struct  AzimuthCrossingEvent
 An azimuth bearing-crossing event. More...
 
struct  AzimuthExtremum
 An azimuth extremum event. More...
 
struct  BodycentricParams
 Parameters for a body-centric coordinate system. More...
 
struct  BodycentricPos
 Result of a body-centric coordinate transformation. More...
 
class  BodyTarget
 Target implementation for solar-system bodies. More...
 
struct  CartesianVelocity
 Cartesian velocity in AU/day, tagged by reference frame. More...
 
struct  ConicOrbit
 
struct  CrossingEvent
 A threshold-crossing event (rising or setting). More...
 
struct  CulminationEvent
 A culmination (local altitude extremum) event. More...
 
class  DataLoadError
 
class  DirectionTarget
 Fixed celestial direction target — a Target for a specific sky position. More...
 
struct  Eccentricity
 
struct  Geodetic
 Geodetic position (WGS84 ellipsoid). More...
 
struct  Iau2000A
 
struct  Iau2000B
 
struct  Iau2006
 
struct  Iau2006A
 
class  InternalPanicError
 
class  InvalidArgumentError
 
class  InvalidBodyError
 
class  InvalidCenterError
 
class  InvalidDimensionError
 
class  InvalidFrameError
 
class  InvalidPeriodError
 
struct  KeplerianOrbit
 
struct  MeanMotionOrbit
 
struct  MoonPhaseGeometry
 Geometric description of the Moon's phase at a point in time. More...
 
class  NoEopDataError
 
class  NullPointerError
 
class  OutOfRangeError
 
struct  PhaseEvent
 A principal lunar phase event (new moon, first quarter, etc.). More...
 
struct  Planet
 Planet data (value type, copyable). More...
 
class  PreparedOrbit
 
struct  ProperMotion
 Proper motion for a star (equatorial). More...
 
class  ProperMotionTarget
 ICRS target with proper motion (RAII wrapper over the FFI handle). More...
 
class  RuntimeEphemeris
 Runtime-loaded JPL DE4xx ephemeris. More...
 
struct  SearchOptions
 Options for altitude search algorithms. More...
 
class  SiderustException
 
class  SkyGrid
 Typed hemispherical alt/az grid sampler. More...
 
struct  SkyGridCell
 A single sky-grid cell: a Horizontal direction and its solid angle. More...
 
struct  SolarLuminosity
 
struct  SolarMass
 
struct  SolarRadius
 
class  Star
 RAII handle to a Star (opaque Rust object). More...
 
class  StarTarget
 Target implementation wrapping a const Star&. More...
 
struct  StellarProperties
 
class  Subject
 Unified, lightweight handle representing any celestial subject. More...
 
class  Target
 Abstract base for any celestial object that can be tracked from an observer location. More...
 
class  TransformFailedError
 
class  UnknownStarError
 

Typedefs

using ICRSTarget = DirectionTarget< spherical::direction::ICRS >
 Fixed direction in ICRS (most common use-case).
 
using ICRFTarget = DirectionTarget< spherical::direction::ICRF >
 Fixed direction in ICRF (treated identically to ICRS in Siderust).
 
using EquatorialMeanJ2000Target = DirectionTarget< spherical::direction::EquatorialMeanJ2000 >
 Fixed direction in mean equatorial coordinates of J2000.0 (FK5).
 
using EquatorialMeanOfDateTarget = DirectionTarget< spherical::direction::EquatorialMeanOfDate >
 Fixed direction in mean equatorial coordinates of date (precessed only).
 
using EquatorialTrueOfDateTarget = DirectionTarget< spherical::direction::EquatorialTrueOfDate >
 
using EclipticMeanJ2000Target = DirectionTarget< spherical::direction::EclipticMeanJ2000 >
 Fixed direction in mean ecliptic coordinates of J2000.0.
 
using CivilTime = tempoch::CivilTime
 
using TimeContext = tempoch::TimeContext
 
using TT = tempoch::scale::TT
 
using UTC = tempoch::scale::UTC
 
using UT1 = tempoch::scale::UT1
 
using TDB = tempoch::scale::TDB
 
using TCG = tempoch::scale::TCG
 
using TCB = tempoch::scale::TCB
 
using TAI = tempoch::scale::TAI
 
using GPST = tempoch::scale::GPST
 
using JD = tempoch::format::JD
 
using MJD = tempoch::format::MJD
 
using Unix = tempoch::format::Unix
 
using GPS = tempoch::format::GPS
 
using J2000s = tempoch::format::J2000s
 
using Calendar = CivilTime
 
template<typename Scale , typename Format >
using Time = tempoch::EncodedTime< Scale, Format >
 
template<typename Scale , typename Format >
using Period = tempoch::Period< Time< Scale, Format > >
 
template<typename Scale >
using TimeAxis = tempoch::Time< Scale >
 
template<typename Scale >
using J2000Seconds = tempoch::J2000Seconds< Scale >
 
using Trackable = Target
 Backward-compatible alias. Prefer Target in new code.
 

Enumerations

enum class  AzimuthExtremumKind : int32_t { Max = 0 , Min = 1 }
 Distinguishes azimuth extrema: northernmost or southernmost bearing. More...
 
enum class  Body : int32_t {
  Sun = SIDERUST_BODY_SUN , Moon = SIDERUST_BODY_MOON , Mercury = SIDERUST_BODY_MERCURY , Venus = SIDERUST_BODY_VENUS ,
  Mars = SIDERUST_BODY_MARS , Jupiter = SIDERUST_BODY_JUPITER , Saturn = SIDERUST_BODY_SATURN , Uranus = SIDERUST_BODY_URANUS ,
  Neptune = SIDERUST_BODY_NEPTUNE
}
 Identifies a solar-system body for generic altitude/azimuth dispatch. More...
 
enum class  Frame : int32_t {
  ICRS = SIDERUST_FRAME_T_ICRS , EclipticMeanJ2000 = SIDERUST_FRAME_T_ECLIPTIC_MEAN_J2000 , EquatorialMeanJ2000 = SIDERUST_FRAME_T_EQUATORIAL_MEAN_J2000 , EquatorialMeanOfDate = SIDERUST_FRAME_T_EQUATORIAL_MEAN_OF_DATE ,
  EquatorialTrueOfDate = SIDERUST_FRAME_T_EQUATORIAL_TRUE_OF_DATE , Horizontal = SIDERUST_FRAME_T_HORIZONTAL , ECEF = SIDERUST_FRAME_T_ECEF , Galactic = SIDERUST_FRAME_T_GALACTIC ,
  GCRS = SIDERUST_FRAME_T_GCRS , EclipticOfDate = SIDERUST_FRAME_T_ECLIPTIC_OF_DATE , EclipticTrueOfDate = SIDERUST_FRAME_T_ECLIPTIC_TRUE_OF_DATE , CIRS = SIDERUST_FRAME_T_CIRS ,
  TIRS = SIDERUST_FRAME_T_TIRS , ITRF = SIDERUST_FRAME_T_ITRF , ICRF = SIDERUST_FRAME_T_ICRF
}
 
enum class  Center : int32_t {
  Barycentric = SIDERUST_CENTER_T_BARYCENTRIC , Heliocentric = SIDERUST_CENTER_T_HELIOCENTRIC , Geocentric = SIDERUST_CENTER_T_GEOCENTRIC , Topocentric = SIDERUST_CENTER_T_TOPOCENTRIC ,
  Bodycentric = SIDERUST_CENTER_T_BODYCENTRIC
}
 
enum class  EarthOrientationModel : int32_t { Iau2000A = SIDERUST_EARTH_ORIENTATION_MODEL_T_IAU2000_A , Iau2000B = SIDERUST_EARTH_ORIENTATION_MODEL_T_IAU2000_B , Iau2006 = SIDERUST_EARTH_ORIENTATION_MODEL_T_IAU2006 , Iau2006A = SIDERUST_EARTH_ORIENTATION_MODEL_T_IAU2006_A }
 
enum class  CrossingDirection : int32_t { Rising = SIDERUST_CROSSING_DIRECTION_T_RISING , Setting = SIDERUST_CROSSING_DIRECTION_T_SETTING }
 
enum class  CulminationKind : int32_t { Max = SIDERUST_CULMINATION_KIND_T_MAX , Min = SIDERUST_CULMINATION_KIND_T_MIN }
 
enum class  RaConvention : int32_t { MuAlpha = SIDERUST_RA_CONVENTION_T_MU_ALPHA , MuAlphaStar = SIDERUST_RA_CONVENTION_T_MU_ALPHA_STAR }
 
enum class  PhaseKind : int32_t { NewMoon = 0 , FirstQuarter = 1 , FullMoon = 2 , LastQuarter = 3 }
 Principal lunar phase kinds (new-moon quarter events). More...
 
enum class  MoonPhaseLabel : int32_t {
  NewMoon = 0 , WaxingCrescent = 1 , FirstQuarter = 2 , WaxingGibbous = 3 ,
  FullMoon = 4 , WaningGibbous = 5 , LastQuarter = 6 , WaningCrescent = 7
}
 Descriptive moon phase labels (8 canonical phases). More...
 
enum class  ConicKind : std::uint8_t { Elliptic = 0 , Hyperbolic = 1 }
 
enum class  OrbitReferenceCenter : std::uint8_t { Barycentric = 0 , Heliocentric = 1 , Geocentric = 2 }
 Specifies the reference center for an orbit. More...
 
enum class  SubjectKind : int32_t { Body = SIDERUST_SUBJECT_KIND_T_BODY , Star = SIDERUST_SUBJECT_KIND_T_STAR , Icrs = SIDERUST_SUBJECT_KIND_T_ICRS , GenericTarget = SIDERUST_SUBJECT_KIND_T_GENERIC_TARGET }
 Discriminant for the active field in a Subject. More...
 
enum class  TwilightPhase : int32_t {
  Day = SIDERUST_TWILIGHT_PHASE_T_DAY , Civil = SIDERUST_TWILIGHT_PHASE_T_CIVIL , Nautical = SIDERUST_TWILIGHT_PHASE_T_NAUTICAL , Astronomical = SIDERUST_TWILIGHT_PHASE_T_ASTRONOMICAL ,
  Dark = SIDERUST_TWILIGHT_PHASE_T_DARK
}
 Sky-condition phase determined by the Sun's altitude. More...
 

Functions

std::ostream & operator<< (std::ostream &os, AzimuthExtremumKind kind)
 Stream operator for AzimuthExtremumKind.
 
const PlanetMERCURY ()
 
const PlanetVENUS ()
 
const PlanetEARTH ()
 
const PlanetMARS ()
 
const PlanetJUPITER ()
 
const PlanetSATURN ()
 
const PlanetURANUS ()
 
const PlanetNEPTUNE ()
 
Planet mercury ()
 
Planet venus ()
 
Planet earth ()
 
Planet mars ()
 
Planet jupiter ()
 
Planet saturn ()
 
Planet uranus ()
 
Planet neptune ()
 
const StarVEGA ()
 
const StarSIRIUS ()
 
const StarPOLARIS ()
 
const StarCANOPUS ()
 
const StarARCTURUS ()
 
const StarRIGEL ()
 
const StarBETELGEUSE ()
 
const StarPROCYON ()
 
const StarALDEBARAN ()
 
const StarALTAIR ()
 
template<typename C , typename F , typename U >
BodycentricPos< F, U > to_bodycentric (const cartesian::Position< C, F, U > &pos, const BodycentricParams &params, const Time< TT, JD > &jd)
 Transform a position to body-centric coordinates.
 
cartesian::position::ECEF< qtty::Meter > geodetic_to_cartesian_ecef (const Geodetic &geo)
 Convert a Geodetic (WGS84) to ECEF Cartesian position.
 
std::ostream & operator<< (std::ostream &os, const Geodetic &geo)
 Stream operator for Geodetic.
 
void check_status (siderust_status_t status, const char *operation)
 
void check_tempoch_status (tempoch_status_t status, const char *operation)
 Backward-compatible wrapper — delegates to tempoch::check_status.
 
uint32_t ffi_version ()
 Returns the siderust-ffi ABI version (major*10000 + minor*100 + patch).
 
std::ostream & operator<< (std::ostream &os, CrossingDirection dir)
 
std::ostream & operator<< (std::ostream &os, CulminationKind kind)
 
std::ostream & operator<< (std::ostream &os, EarthOrientationModel model)
 
double illuminated_percent (const MoonPhaseGeometry &geom)
 Get the illuminated fraction as a percentage [0, 100].
 
bool is_waxing (MoonPhaseLabel label)
 Check if a phase label describes a waxing moon.
 
bool is_waning (MoonPhaseLabel label)
 Check if a phase label describes a waning moon.
 
std::ostream & operator<< (std::ostream &os, PhaseKind kind)
 Stream operator for PhaseKind.
 
std::ostream & operator<< (std::ostream &os, MoonPhaseLabel label)
 Stream operator for MoonPhaseLabel.
 
Geodetic geodetic (double lon_deg, double lat_deg, double height_m=0.0)
 Create a custom geodetic position (WGS84).
 
const GeodeticROQUE_DE_LOS_MUCHACHOS ()
 Roque de los Muchachos Observatory (La Palma, Spain).
 
const GeodeticEL_PARANAL ()
 El Paranal Observatory (Chile).
 
const GeodeticMAUNA_KEA ()
 Mauna Kea Observatory (Hawaii, USA).
 
const GeodeticLA_SILLA_OBSERVATORY ()
 La Silla Observatory (Chile).
 
Geodetic roque_de_los_muchachos ()
 
Geodetic el_paranal ()
 
Geodetic mauna_kea ()
 
Geodetic la_silla ()
 
template<typename C = centers::Heliocentric>
cartesian::Position< C, frames::EclipticMeanJ2000, qtty::AstronomicalUnit > kepler_position (const KeplerianOrbit &orbit, const Time< TT, JD > &jd)
 
std::ostream & operator<< (std::ostream &os, ConicKind kind)
 
std::ostream & operator<< (std::ostream &os, OrbitReferenceCenter center)
 
qtty::Radian altitude_at (const Subject &subj, const Geodetic &obs, const Time< TT, MJD > &mjd)
 Altitude at an instant (radians) for any subject.
 
std::vector< Period< TT, MJD > > above_threshold (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={})
 Periods when a subject is above a threshold altitude.
 
std::vector< Period< TT, MJD > > below_threshold (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={})
 Periods when a subject is below a threshold altitude.
 
std::vector< CrossingEventcrossings (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree threshold, const SearchOptions &opts={})
 Threshold-crossing events for a subject.
 
std::vector< CulminationEventculminations (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, const SearchOptions &opts={})
 Culmination (local extrema) events for a subject.
 
std::vector< Period< TT, MJD > > altitude_ranges (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_alt, qtty::Degree max_alt, const SearchOptions &opts={})
 Periods when a subject's altitude is within [min, max].
 
qtty::Degree azimuth_at (const Subject &subj, const Geodetic &obs, const Time< TT, MJD > &mjd)
 Azimuth at an instant (degrees, N-clockwise) for any subject.
 
std::vector< AzimuthCrossingEventazimuth_crossings (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={})
 Azimuth bearing-crossing events for a subject.
 
std::vector< AzimuthExtremumazimuth_extrema (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, const SearchOptions &opts={})
 Azimuth extrema (northernmost / southernmost) for a subject.
 
std::vector< Period< TT, MJD > > in_azimuth_range (const Subject &subj, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_deg, qtty::Degree max_deg, const SearchOptions &opts={})
 Periods when a subject's azimuth is within [min_deg, max_deg].
 
TwilightPhase twilight_phase (qtty::Degree altitude)
 Classify the sky condition from the Sun's altitude in degrees.
 
TwilightPhase twilight_phase (qtty::Radian altitude)
 Classify the sky condition from the Sun's altitude in radians.
 

Typedef Documentation

◆ Calendar

using siderust::Calendar = typedef CivilTime

Definition at line 34 of file time.hpp.

◆ CivilTime

using siderust::CivilTime = typedef tempoch::CivilTime

Definition at line 15 of file time.hpp.

◆ EclipticMeanJ2000Target

Fixed direction in mean ecliptic coordinates of J2000.0.

Definition at line 393 of file target.hpp.

◆ EquatorialMeanJ2000Target

Fixed direction in mean equatorial coordinates of J2000.0 (FK5).

Definition at line 383 of file target.hpp.

◆ EquatorialMeanOfDateTarget

Fixed direction in mean equatorial coordinates of date (precessed only).

Definition at line 386 of file target.hpp.

◆ EquatorialTrueOfDateTarget

Fixed direction in true equatorial coordinates of date (precessed + nutated).

Definition at line 390 of file target.hpp.

◆ GPS

using siderust::GPS = typedef tempoch::format::GPS

Definition at line 30 of file time.hpp.

◆ GPST

using siderust::GPST = typedef tempoch::scale::GPST

Definition at line 25 of file time.hpp.

◆ ICRFTarget

Fixed direction in ICRF (treated identically to ICRS in Siderust).

Definition at line 380 of file target.hpp.

◆ ICRSTarget

Fixed direction in ICRS (most common use-case).

Definition at line 377 of file target.hpp.

◆ J2000s

using siderust::J2000s = typedef tempoch::format::J2000s

Definition at line 31 of file time.hpp.

◆ J2000Seconds

template<typename Scale >
using siderust::J2000Seconds = typedef tempoch::J2000Seconds<Scale>

Definition at line 40 of file time.hpp.

◆ JD

using siderust::JD = typedef tempoch::format::JD

Definition at line 27 of file time.hpp.

◆ MJD

using siderust::MJD = typedef tempoch::format::MJD

Definition at line 28 of file time.hpp.

◆ Period

template<typename Scale , typename Format >
using siderust::Period = typedef tempoch::Period<Time<Scale, Format> >

Definition at line 37 of file time.hpp.

◆ TAI

using siderust::TAI = typedef tempoch::scale::TAI

Definition at line 24 of file time.hpp.

◆ TCB

using siderust::TCB = typedef tempoch::scale::TCB

Definition at line 23 of file time.hpp.

◆ TCG

using siderust::TCG = typedef tempoch::scale::TCG

Definition at line 22 of file time.hpp.

◆ TDB

using siderust::TDB = typedef tempoch::scale::TDB

Definition at line 21 of file time.hpp.

◆ Time

template<typename Scale , typename Format >
using siderust::Time = typedef tempoch::EncodedTime<Scale, Format>

Definition at line 36 of file time.hpp.

◆ TimeAxis

template<typename Scale >
using siderust::TimeAxis = typedef tempoch::Time<Scale>

Definition at line 39 of file time.hpp.

◆ TimeContext

using siderust::TimeContext = typedef tempoch::TimeContext

Definition at line 16 of file time.hpp.

◆ Trackable

using siderust::Trackable = typedef Target

Backward-compatible alias. Prefer Target in new code.

Definition at line 132 of file trackable.hpp.

◆ TT

using siderust::TT = typedef tempoch::scale::TT

Definition at line 18 of file time.hpp.

◆ Unix

using siderust::Unix = typedef tempoch::format::Unix

Definition at line 29 of file time.hpp.

◆ UT1

using siderust::UT1 = typedef tempoch::scale::UT1

Definition at line 20 of file time.hpp.

◆ UTC

using siderust::UTC = typedef tempoch::scale::UTC

Definition at line 19 of file time.hpp.

Enumeration Type Documentation

◆ AzimuthExtremumKind

enum class siderust::AzimuthExtremumKind : int32_t
strong

Distinguishes azimuth extrema: northernmost or southernmost bearing.

Enumerator
Max 

Northernmost (or easternmost) direction reached by the body.

Min 

Southernmost (or westernmost) direction reached by the body.

Definition at line 38 of file azimuth.hpp.

◆ Body

enum class siderust::Body : int32_t
strong

Identifies a solar-system body for generic altitude/azimuth dispatch.

Maps 1:1 to the FFI SiderustBody discriminant.

Enumerator
Sun 
Moon 
Mercury 
Venus 
Mars 
Jupiter 
Saturn 
Uranus 
Neptune 

Definition at line 47 of file body_target.hpp.

◆ Center

enum class siderust::Center : int32_t
strong
Enumerator
Barycentric 
Heliocentric 
Geocentric 
Topocentric 
Bodycentric 

Definition at line 187 of file ffi_core.hpp.

◆ ConicKind

enum class siderust::ConicKind : std::uint8_t
strong
Enumerator
Elliptic 
Hyperbolic 

Definition at line 36 of file orbit.hpp.

◆ CrossingDirection

enum class siderust::CrossingDirection : int32_t
strong
Enumerator
Rising 
Setting 

Definition at line 202 of file ffi_core.hpp.

◆ CulminationKind

enum class siderust::CulminationKind : int32_t
strong
Enumerator
Max 
Min 

Definition at line 207 of file ffi_core.hpp.

◆ EarthOrientationModel

enum class siderust::EarthOrientationModel : int32_t
strong
Enumerator
Iau2000A 
Iau2000B 
Iau2006 
Iau2006A 

Definition at line 195 of file ffi_core.hpp.

◆ Frame

enum class siderust::Frame : int32_t
strong
Enumerator
ICRS 
EclipticMeanJ2000 
EquatorialMeanJ2000 
EquatorialMeanOfDate 
EquatorialTrueOfDate 
Horizontal 
ECEF 
Galactic 
GCRS 
EclipticOfDate 
EclipticTrueOfDate 
CIRS 
TIRS 
ITRF 
ICRF 

Definition at line 169 of file ffi_core.hpp.

◆ MoonPhaseLabel

enum class siderust::MoonPhaseLabel : int32_t
strong

Descriptive moon phase labels (8 canonical phases).

Enumerator
NewMoon 
WaxingCrescent 
FirstQuarter 
WaxingGibbous 
FullMoon 
WaningGibbous 
LastQuarter 
WaningCrescent 

Definition at line 40 of file lunar_phase.hpp.

◆ OrbitReferenceCenter

enum class siderust::OrbitReferenceCenter : std::uint8_t
strong

Specifies the reference center for an orbit.

Indicates which standard center the orbital elements are defined relative to. This is needed when transforming positions to/from a body-centric frame, as the orbit must be converted to match the coordinate system.

Enumerator
Barycentric 

Orbit defined relative to the solar system barycenter.

Heliocentric 

Orbit defined relative to the Sun (planets, asteroids, comets).

Geocentric 

Orbit defined relative to Earth (artificial satellites, Moon).

Definition at line 50 of file orbital_center.hpp.

◆ PhaseKind

enum class siderust::PhaseKind : int32_t
strong

Principal lunar phase kinds (new-moon quarter events).

Enumerator
NewMoon 
FirstQuarter 
FullMoon 
LastQuarter 

Definition at line 30 of file lunar_phase.hpp.

◆ RaConvention

enum class siderust::RaConvention : int32_t
strong
Enumerator
MuAlpha 
MuAlphaStar 

Definition at line 250 of file ffi_core.hpp.

◆ SubjectKind

enum class siderust::SubjectKind : int32_t
strong

Discriminant for the active field in a Subject.

Enumerator
Body 
Star 
Icrs 
GenericTarget 

Definition at line 62 of file subject.hpp.

◆ TwilightPhase

enum class siderust::TwilightPhase : int32_t
strong

Sky-condition phase determined by the Sun's altitude.

Mirrors SiderustTwilightPhase from siderust-ffi.

Enumerator
Day 

Sun above horizon.

Civil 

-6° to 0°.

Nautical 

-12° to -6°.

Astronomical 

-18° to -12°.

Dark 

Below -18°.

Definition at line 42 of file twilight.hpp.

Function Documentation

◆ above_threshold()

std::vector< Period< TT, MJD > > siderust::above_threshold ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  threshold,
const SearchOptions opts = {} 
)
inline

Periods when a subject is above a threshold altitude.

Definition at line 159 of file subject.hpp.

◆ ALDEBARAN()

const Star & siderust::ALDEBARAN ( )
inline

Definition at line 296 of file bodies.hpp.

References siderust::Star::catalog().

◆ ALTAIR()

const Star & siderust::ALTAIR ( )
inline

Definition at line 300 of file bodies.hpp.

References siderust::Star::catalog().

◆ altitude_at()

qtty::Radian siderust::altitude_at ( const Subject subj,
const Geodetic obs,
const Time< TT, MJD > &  mjd 
)
inline

Altitude at an instant (radians) for any subject.

Definition at line 148 of file subject.hpp.

References siderust::Subject::c_inner(), check_status(), and siderust::Geodetic::to_c().

◆ altitude_ranges()

std::vector< Period< TT, MJD > > siderust::altitude_ranges ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  min_alt,
qtty::Degree  max_alt,
const SearchOptions opts = {} 
)
inline

Periods when a subject's altitude is within [min, max].

Definition at line 217 of file subject.hpp.

◆ ARCTURUS()

const Star & siderust::ARCTURUS ( )
inline

Definition at line 280 of file bodies.hpp.

References siderust::Star::catalog().

◆ azimuth_at()

qtty::Degree siderust::azimuth_at ( const Subject subj,
const Geodetic obs,
const Time< TT, MJD > &  mjd 
)
inline

Azimuth at an instant (degrees, N-clockwise) for any subject.

Definition at line 233 of file subject.hpp.

References siderust::Subject::c_inner(), check_status(), and siderust::Geodetic::to_c().

◆ azimuth_crossings()

std::vector< AzimuthCrossingEvent > siderust::azimuth_crossings ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  bearing,
const SearchOptions opts = {} 
)
inline

Azimuth bearing-crossing events for a subject.

Definition at line 243 of file subject.hpp.

◆ azimuth_extrema()

std::vector< AzimuthExtremum > siderust::azimuth_extrema ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
const SearchOptions opts = {} 
)
inline

Azimuth extrema (northernmost / southernmost) for a subject.

Definition at line 258 of file subject.hpp.

◆ below_threshold()

std::vector< Period< TT, MJD > > siderust::below_threshold ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  threshold,
const SearchOptions opts = {} 
)
inline

Periods when a subject is below a threshold altitude.

Definition at line 174 of file subject.hpp.

◆ BETELGEUSE()

const Star & siderust::BETELGEUSE ( )
inline

Definition at line 288 of file bodies.hpp.

References siderust::Star::catalog().

◆ CANOPUS()

const Star & siderust::CANOPUS ( )
inline

Definition at line 276 of file bodies.hpp.

References siderust::Star::catalog().

◆ check_status()

void siderust::check_status ( siderust_status_t  status,
const char *  operation 
)
inline

Definition at line 111 of file ffi_core.hpp.

Referenced by siderust::body::altitude_at(), siderust::sun::altitude_at(), siderust::moon::altitude_at(), siderust::DirectionTarget< C >::altitude_at(), siderust::ProperMotionTarget::altitude_at(), siderust::icrs_altitude::altitude_at(), siderust::star_altitude::altitude_at(), altitude_at(), siderust::body::azimuth_at(), siderust::sun::azimuth_at(), siderust::moon::azimuth_at(), siderust::DirectionTarget< C >::azimuth_at(), siderust::ProperMotionTarget::azimuth_at(), siderust::icrs_altitude::azimuth_at(), siderust::star_altitude::azimuth_at(), azimuth_at(), siderust::Star::catalog(), siderust::SkyGrid::cells(), siderust::Star::create(), siderust::DirectionTarget< C >::data(), siderust::ProperMotionTarget::data(), siderust::DirectionTarget< C >::DirectionTarget(), siderust::ephemeris::earth_barycentric(), siderust::RuntimeEphemeris::earth_barycentric(), siderust::RuntimeEphemeris::earth_barycentric_velocity(), siderust::ephemeris::earth_heliocentric(), siderust::RuntimeEphemeris::earth_heliocentric(), siderust::AstroContext::from_default_ffi(), geodetic(), siderust::ephemeris::jupiter_barycentric(), siderust::ephemeris::jupiter_heliocentric(), kepler_position(), siderust::detail::make_el_paranal(), siderust::detail::make_la_silla(), siderust::detail::make_mauna_kea(), siderust::detail::make_planet_earth(), siderust::detail::make_planet_jupiter(), siderust::detail::make_planet_mars(), siderust::detail::make_planet_mercury(), siderust::detail::make_planet_neptune(), siderust::detail::make_planet_saturn(), siderust::detail::make_planet_uranus(), siderust::detail::make_planet_venus(), siderust::detail::make_roque_de_los_muchachos(), siderust::ephemeris::mars_barycentric(), siderust::ephemeris::mars_heliocentric(), siderust::ephemeris::mercury_barycentric(), siderust::ephemeris::mercury_heliocentric(), siderust::detail::OwnedFfiContext::model(), siderust::ephemeris::moon_geocentric(), siderust::RuntimeEphemeris::moon_geocentric(), siderust::Star::name(), siderust::ephemeris::neptune_barycentric(), siderust::ephemeris::neptune_heliocentric(), siderust::tle::Tle::norad_id(), siderust::detail::OwnedFfiContext::OwnedFfiContext(), siderust::detail::OwnedFfiContext::OwnedFfiContext(), siderust::tle::Tle::parse(), siderust::oem::parse(), siderust::moon::phase_geocentric(), siderust::moon::phase_label(), siderust::moon::phase_topocentric(), siderust::MeanMotionOrbit::position_at(), siderust::ConicOrbit::position_at(), siderust::PreparedOrbit::position_at(), siderust::PreparedOrbit::PreparedOrbit(), siderust::ProperMotionTarget::ProperMotionTarget(), siderust::RuntimeEphemeris::RuntimeEphemeris(), siderust::RuntimeEphemeris::RuntimeEphemeris(), siderust::ephemeris::saturn_barycentric(), siderust::ephemeris::saturn_heliocentric(), siderust::lambert::detail::solve_impl(), siderust::ephemeris::sun_barycentric(), siderust::RuntimeEphemeris::sun_barycentric(), to_bodycentric(), siderust::Geodetic::to_cartesian(), siderust::cartesian::Position< C, F, U >::to_center(), siderust::cartesian::Direction< F >::to_frame(), siderust::cartesian::Displacement< F, U >::to_frame(), siderust::cartesian::Position< C, F, U >::to_frame(), siderust::spherical::Direction< F >::to_frame(), siderust::cartesian::Direction< F >::to_frame_with(), siderust::cartesian::Displacement< F, U >::to_frame_with(), siderust::cartesian::Position< C, F, U >::to_frame_with(), siderust::spherical::Direction< F >::to_frame_with(), siderust::BodycentricPos< F, U >::to_geocentric(), siderust::spherical::Direction< F >::to_horizontal(), siderust::spherical::Direction< F >::to_horizontal_precise(), siderust::spherical::Direction< F >::to_horizontal_with(), twilight_phase(), twilight_phase(), siderust::ephemeris::uranus_barycentric(), siderust::ephemeris::uranus_heliocentric(), siderust::ephemeris::venus_barycentric(), and siderust::ephemeris::venus_heliocentric().

◆ check_tempoch_status()

void siderust::check_tempoch_status ( tempoch_status_t  status,
const char *  operation 
)
inline

Backward-compatible wrapper — delegates to tempoch::check_status.

Definition at line 151 of file ffi_core.hpp.

◆ crossings()

std::vector< CrossingEvent > siderust::crossings ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  threshold,
const SearchOptions opts = {} 
)
inline

Threshold-crossing events for a subject.

Definition at line 189 of file subject.hpp.

◆ culminations()

std::vector< CulminationEvent > siderust::culminations ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
const SearchOptions opts = {} 
)
inline

Culmination (local extrema) events for a subject.

Definition at line 203 of file subject.hpp.

◆ EARTH()

const Planet & siderust::EARTH ( )
inline

Definition at line 132 of file bodies.hpp.

References siderust::detail::make_planet_earth().

Referenced by earth().

◆ earth()

Planet siderust::earth ( )
inline

Definition at line 160 of file bodies.hpp.

References EARTH().

◆ EL_PARANAL()

const Geodetic & siderust::EL_PARANAL ( )
inline

El Paranal Observatory (Chile).

Definition at line 61 of file observatories.hpp.

References siderust::detail::make_el_paranal().

Referenced by el_paranal().

◆ el_paranal()

Geodetic siderust::el_paranal ( )
inline

Definition at line 84 of file observatories.hpp.

References EL_PARANAL().

◆ ffi_version()

uint32_t siderust::ffi_version ( )
inline

Returns the siderust-ffi ABI version (major*10000 + minor*100 + patch).

Definition at line 163 of file ffi_core.hpp.

◆ geodetic()

Geodetic siderust::geodetic ( double  lon_deg,
double  lat_deg,
double  height_m = 0.0 
)
inline

Create a custom geodetic position (WGS84).

Definition at line 44 of file observatories.hpp.

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

◆ illuminated_percent()

double siderust::illuminated_percent ( const MoonPhaseGeometry geom)
inline

Get the illuminated fraction as a percentage [0, 100].

Definition at line 233 of file lunar_phase.hpp.

References siderust::MoonPhaseGeometry::illuminated_fraction.

◆ in_azimuth_range()

std::vector< Period< TT, MJD > > siderust::in_azimuth_range ( const Subject subj,
const Geodetic obs,
const Period< TT, MJD > &  window,
qtty::Degree  min_deg,
qtty::Degree  max_deg,
const SearchOptions opts = {} 
)
inline

Periods when a subject's azimuth is within [min_deg, max_deg].

Definition at line 272 of file subject.hpp.

◆ is_waning()

bool siderust::is_waning ( MoonPhaseLabel  label)
inline

Check if a phase label describes a waning moon.

Definition at line 254 of file lunar_phase.hpp.

References LastQuarter, WaningCrescent, and WaningGibbous.

◆ is_waxing()

bool siderust::is_waxing ( MoonPhaseLabel  label)
inline

Check if a phase label describes a waxing moon.

Definition at line 240 of file lunar_phase.hpp.

References FirstQuarter, WaxingCrescent, and WaxingGibbous.

◆ JUPITER()

const Planet & siderust::JUPITER ( )
inline

Definition at line 140 of file bodies.hpp.

References siderust::detail::make_planet_jupiter().

Referenced by jupiter().

◆ jupiter()

Planet siderust::jupiter ( )
inline

Definition at line 162 of file bodies.hpp.

References JUPITER().

◆ kepler_position()

template<typename C = centers::Heliocentric>
cartesian::Position< C, frames::EclipticMeanJ2000, qtty::AstronomicalUnit > siderust::kepler_position ( const KeplerianOrbit orbit,
const Time< TT, JD > &  jd 
)
inline

Definition at line 84 of file orbit.hpp.

References check_status(), and siderust::KeplerianOrbit::to_c().

◆ la_silla()

Geodetic siderust::la_silla ( )
inline

Definition at line 86 of file observatories.hpp.

References LA_SILLA_OBSERVATORY().

◆ LA_SILLA_OBSERVATORY()

const Geodetic & siderust::LA_SILLA_OBSERVATORY ( )
inline

La Silla Observatory (Chile).

Definition at line 77 of file observatories.hpp.

References siderust::detail::make_la_silla().

Referenced by la_silla().

◆ MARS()

const Planet & siderust::MARS ( )
inline

Definition at line 136 of file bodies.hpp.

References siderust::detail::make_planet_mars().

Referenced by mars().

◆ mars()

Planet siderust::mars ( )
inline

Definition at line 161 of file bodies.hpp.

References MARS().

◆ MAUNA_KEA()

const Geodetic & siderust::MAUNA_KEA ( )
inline

Mauna Kea Observatory (Hawaii, USA).

Definition at line 69 of file observatories.hpp.

References siderust::detail::make_mauna_kea().

Referenced by mauna_kea().

◆ mauna_kea()

Geodetic siderust::mauna_kea ( )
inline

Definition at line 85 of file observatories.hpp.

References MAUNA_KEA().

◆ MERCURY()

const Planet & siderust::MERCURY ( )
inline

Definition at line 124 of file bodies.hpp.

References siderust::detail::make_planet_mercury().

Referenced by mercury().

◆ mercury()

Planet siderust::mercury ( )
inline

Definition at line 158 of file bodies.hpp.

References MERCURY().

◆ NEPTUNE()

const Planet & siderust::NEPTUNE ( )
inline

Definition at line 152 of file bodies.hpp.

References siderust::detail::make_planet_neptune().

Referenced by neptune().

◆ neptune()

Planet siderust::neptune ( )
inline

Definition at line 165 of file bodies.hpp.

References NEPTUNE().

◆ operator<<() [1/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
AzimuthExtremumKind  kind 
)
inline

Stream operator for AzimuthExtremumKind.

Definition at line 395 of file azimuth.hpp.

References Max, and Min.

◆ operator<<() [2/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
ConicKind  kind 
)
inline

Definition at line 222 of file orbit.hpp.

References Elliptic, and Hyperbolic.

◆ operator<<() [3/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
const Geodetic geo 
)
inline

Stream operator for Geodetic.

Definition at line 67 of file geodetic.hpp.

References siderust::Geodetic::height, siderust::Geodetic::lat, and siderust::Geodetic::lon.

◆ operator<<() [4/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
CrossingDirection  dir 
)
inline

Definition at line 216 of file ffi_core.hpp.

References Rising, and Setting.

◆ operator<<() [5/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
CulminationKind  kind 
)
inline

Definition at line 226 of file ffi_core.hpp.

References Max, and Min.

◆ operator<<() [6/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
EarthOrientationModel  model 
)
inline

Definition at line 236 of file ffi_core.hpp.

References Iau2000A, Iau2000B, Iau2006, and Iau2006A.

◆ operator<<() [7/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
MoonPhaseLabel  label 
)
inline

Stream operator for MoonPhaseLabel.

Definition at line 289 of file lunar_phase.hpp.

References FirstQuarter, FullMoon, LastQuarter, NewMoon, WaningCrescent, WaningGibbous, WaxingCrescent, and WaxingGibbous.

◆ operator<<() [8/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
OrbitReferenceCenter  center 
)
inline

Definition at line 163 of file orbital_center.hpp.

References Barycentric, Geocentric, and Heliocentric.

◆ operator<<() [9/9]

std::ostream & siderust::operator<< ( std::ostream &  os,
PhaseKind  kind 
)
inline

Stream operator for PhaseKind.

Definition at line 272 of file lunar_phase.hpp.

References FirstQuarter, FullMoon, LastQuarter, and NewMoon.

◆ POLARIS()

const Star & siderust::POLARIS ( )
inline

Definition at line 272 of file bodies.hpp.

References siderust::Star::catalog().

◆ PROCYON()

const Star & siderust::PROCYON ( )
inline

Definition at line 292 of file bodies.hpp.

References siderust::Star::catalog().

◆ RIGEL()

const Star & siderust::RIGEL ( )
inline

Definition at line 284 of file bodies.hpp.

References siderust::Star::catalog().

◆ ROQUE_DE_LOS_MUCHACHOS()

const Geodetic & siderust::ROQUE_DE_LOS_MUCHACHOS ( )
inline

Roque de los Muchachos Observatory (La Palma, Spain).

Definition at line 53 of file observatories.hpp.

References siderust::detail::make_roque_de_los_muchachos().

Referenced by roque_de_los_muchachos().

◆ roque_de_los_muchachos()

Geodetic siderust::roque_de_los_muchachos ( )
inline

Definition at line 83 of file observatories.hpp.

References ROQUE_DE_LOS_MUCHACHOS().

◆ SATURN()

const Planet & siderust::SATURN ( )
inline

Definition at line 144 of file bodies.hpp.

References siderust::detail::make_planet_saturn().

Referenced by saturn().

◆ saturn()

Planet siderust::saturn ( )
inline

Definition at line 163 of file bodies.hpp.

References SATURN().

◆ SIRIUS()

const Star & siderust::SIRIUS ( )
inline

Definition at line 268 of file bodies.hpp.

References siderust::Star::catalog().

◆ to_bodycentric()

template<typename C , typename F , typename U >
BodycentricPos< F, U > siderust::to_bodycentric ( const cartesian::Position< C, F, U > &  pos,
const BodycentricParams params,
const Time< TT, JD > &  jd 
)
inline

Transform a position to body-centric coordinates.

Mirrors Rust's position.to_bodycentric(params, jd).

The source center must be Geocentric, Heliocentric, or Barycentric. Calling this with Bodycentric or Topocentric as the source center will throw InvalidCenterError at runtime.

The result frame F and unit U are preserved from the source position.

Template Parameters
CSource center (Geocentric, Heliocentric, or Barycentric).
FReference frame.
ULength unit.
Parameters
posSource position.
paramsOrbital parameters of the body to use as the new center.
jdJulian Date for Keplerian propagation and center shifts.
Returns
BodycentricPos<F, U> — relative position plus embedded params.
Exceptions
InvalidCenterErrorif the source center is not supported.

Definition at line 137 of file bodycentric_transforms.hpp.

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

◆ twilight_phase() [1/2]

TwilightPhase siderust::twilight_phase ( qtty::Degree  altitude)
inline

Classify the sky condition from the Sun's altitude in degrees.

Parameters
altitudeSun altitude above the horizon (degrees, signed). Negative values mean the Sun is below the horizon.
Returns
The corresponding TwilightPhase value.
Exceptions
NullPointerError(should never happen in normal operation).

Definition at line 58 of file twilight.hpp.

References check_status().

◆ twilight_phase() [2/2]

TwilightPhase siderust::twilight_phase ( qtty::Radian  altitude)
inline

Classify the sky condition from the Sun's altitude in radians.

Parameters
altitudeSun altitude (radians).
Returns
The corresponding TwilightPhase value.

Definition at line 70 of file twilight.hpp.

References check_status().

◆ URANUS()

const Planet & siderust::URANUS ( )
inline

Definition at line 148 of file bodies.hpp.

References siderust::detail::make_planet_uranus().

Referenced by uranus().

◆ uranus()

Planet siderust::uranus ( )
inline

Definition at line 164 of file bodies.hpp.

References URANUS().

◆ VEGA()

const Star & siderust::VEGA ( )
inline

Definition at line 264 of file bodies.hpp.

References siderust::Star::catalog().

◆ VENUS()

const Planet & siderust::VENUS ( )
inline

Definition at line 128 of file bodies.hpp.

References siderust::detail::make_planet_venus().

Referenced by venus().

◆ venus()

Planet siderust::venus ( )
inline

Definition at line 159 of file bodies.hpp.

References VENUS().