CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
astro::planet::detail Namespace Reference

Namespaces

namespace  pluto

Classes

struct  RectangularCoordinate
struct  AberrationCorrection
struct  Vsop87dMapping

Typedefs

using HeliocentricEvaluator

Functions

template<astro::vsop87d::Planet planet>
auto heliocentric (const double jde_tt) -> toolbox::SphericalCoordinate
 Evaluate VSOP87D at JDE(TT), returning heliocentric mean-ecliptic-of-date angles and AU radius.
template<Planet target, astro::vsop87d::Planet model>
consteval auto make_vsop87d_mapping () -> Vsop87dMapping
 Bind one planetary identity to its VSOP87D evaluator at compile time.
auto heliocentric (const Planet planet, const double retarded_jde_tt, const double observation_jde_tt) -> toolbox::SphericalCoordinate
 Evaluate at emission time and express the direction in mean observation-date ecliptic axes.
auto rectangular (const toolbox::SphericalCoordinate &spherical) -> RectangularCoordinate
 Convert to Cartesian AU in the input's unchanged origin and axes.
auto light_time_corrected (const Planet planet, const double jde_tt, const toolbox::SphericalCoordinate &earth) -> toolbox::SphericalCoordinate
auto aberration (const double jde_tt, const toolbox::SphericalCoordinate &coordinate, const toolbox::SphericalCoordinate &earth) -> AberrationCorrection
auto validate_input (const Planet planet, const double jde_tt) -> std::string_view
 Validate finite JDE(TT) before planet identity, returning the name for error context.
auto validate_apparent_input (const Planet planet, const double jde_tt) -> std::string_view
 Apply finite-time and identity checks, then Pluto's half-open apparent-position window.
auto validate_retrograde_input (const Planet planet, const double jde_tt) -> void
 Validate a centered one-day direction test, reserving both endpoints in Pluto's window.

Variables

constexpr std::size_t LIGHT_TIME_MAX_ITERATIONS
constexpr double RETROGRADE_DIFFERENCE_HALF_WIDTH_DAYS

Typedef Documentation

◆ HeliocentricEvaluator

Function Documentation

◆ aberration()

auto astro::planet::detail::aberration ( const double jde_tt,
const toolbox::SphericalCoordinate & coordinate,
const toolbox::SphericalCoordinate & earth )->AberrationCorrection
inlinenodiscard
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, (23.2).

◆ heliocentric() [1/2]

template<astro::vsop87d::Planet planet>
auto astro::planet::detail::heliocentric ( const double jde_tt) ->toolbox::SphericalCoordinate
inlinenodiscard

Evaluate VSOP87D at JDE(TT), returning heliocentric mean-ecliptic-of-date angles and AU radius.

◆ heliocentric() [2/2]

auto astro::planet::detail::heliocentric ( const Planet planet,
const double retarded_jde_tt,
const double observation_jde_tt )->toolbox::SphericalCoordinate
inlinenodiscard

Evaluate at emission time and express the direction in mean observation-date ecliptic axes.

Note
VSOP87D uses astro::earth::precession::ecliptic; Pluto uses pluto::heliocentric_for_subtraction. Both return the unmodified heliocentric radius for subtraction from observation-time Earth.
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, (21.5), (21.7), and (32.3).

◆ light_time_corrected()

auto astro::planet::detail::light_time_corrected ( const Planet planet,
const double jde_tt,
const toolbox::SphericalCoordinate & earth )->toolbox::SphericalCoordinate
inlinenodiscard
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, (33.1)-(33.4).

◆ make_vsop87d_mapping()

template<Planet target, astro::vsop87d::Planet model>
auto astro::planet::detail::make_vsop87d_mapping ( ) ->Vsop87dMapping
nodiscardconsteval

Bind one planetary identity to its VSOP87D evaluator at compile time.

◆ rectangular()

auto astro::planet::detail::rectangular ( const toolbox::SphericalCoordinate & spherical) ->RectangularCoordinate
inlinenodiscard

Convert to Cartesian AU in the input's unchanged origin and axes.

◆ validate_apparent_input()

auto astro::planet::detail::validate_apparent_input ( const Planet planet,
const double jde_tt )->std::string_view
inlinenodiscard

Apply finite-time and identity checks, then Pluto's half-open apparent-position window.

◆ validate_input()

auto astro::planet::detail::validate_input ( const Planet planet,
const double jde_tt )->std::string_view
inlinenodiscard

Validate finite JDE(TT) before planet identity, returning the name for error context.

◆ validate_retrograde_input()

auto astro::planet::detail::validate_retrograde_input ( const Planet planet,
const double jde_tt )->void
inline

Validate a centered one-day direction test, reserving both endpoints in Pluto's window.

Variable Documentation

◆ LIGHT_TIME_MAX_ITERATIONS

std::size_t astro::planet::detail::LIGHT_TIME_MAX_ITERATIONS
inlineconstexpr

◆ RETROGRADE_DIFFERENCE_HALF_WIDTH_DAYS

double astro::planet::detail::RETROGRADE_DIFFERENCE_HALF_WIDTH_DAYS
inlineconstexpr