CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
planet.hpp File Reference
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <format>
#include <stdexcept>
#include <string_view>
#include "earth.hpp"
#include "earth/precession.hpp"
#include "coord_transform.hpp"
#include "illumination.hpp"
#include "julian_day.hpp"
#include "pluto.hpp"
#include "sun.hpp"
#include "toolbox.hpp"
#include "vsop87d/jupiter_coeff.hpp"
#include "vsop87d/mars_coeff.hpp"
#include "vsop87d/mercury_coeff.hpp"
#include "vsop87d/neptune_coeff.hpp"
#include "vsop87d/saturn_coeff.hpp"
#include "vsop87d/uranus_coeff.hpp"
#include "vsop87d/venus_coeff.hpp"

Classes

struct  astro::planet::detail::RectangularCoordinate
struct  astro::planet::detail::AberrationCorrection
struct  astro::planet::detail::Vsop87dMapping

Namespaces

namespace  astro
namespace  astro::planet
namespace  astro::planet::detail
namespace  astro::planet::geocentric_coord
namespace  astro::planet::observation

Typedefs

using astro::planet::detail::HeliocentricEvaluator

Enumerations

enum class  astro::planet::Planet : uint8_t {
  astro::planet::MERCURY , astro::planet::VENUS , astro::planet::MARS , astro::planet::JUPITER ,
  astro::planet::SATURN , astro::planet::URANUS , astro::planet::NEPTUNE , astro::planet::PLUTO
}
 A planetary target whose geocentric position can be calculated. More...

Functions

auto astro::planet::name (const Planet planet) -> std::string_view
 Return the canonical English name of a planetary target.
template<astro::vsop87d::Planet planet>
auto astro::planet::detail::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 astro::planet::detail::make_vsop87d_mapping () -> Vsop87dMapping
 Bind one planetary identity to its VSOP87D evaluator at compile time.
auto astro::planet::detail::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 astro::planet::detail::rectangular (const toolbox::SphericalCoordinate &spherical) -> RectangularCoordinate
 Convert to Cartesian AU in the input's unchanged origin and axes.
auto astro::planet::detail::light_time_corrected (const Planet planet, const double jde_tt, const toolbox::SphericalCoordinate &earth) -> toolbox::SphericalCoordinate
auto astro::planet::detail::aberration (const double jde_tt, const toolbox::SphericalCoordinate &coordinate, const toolbox::SphericalCoordinate &earth) -> AberrationCorrection
auto astro::planet::detail::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 astro::planet::detail::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 astro::planet::detail::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.
auto astro::planet::geocentric_coord::apparent (const Planet planet, const double jde_tt) -> toolbox::SphericalCoordinate
 Calculate a planet's apparent geocentric ecliptic position.
auto astro::planet::geocentric_coord::is_retrograde (const Planet planet, const double jde_tt) -> bool
 Return whether a planet's apparent geocentric longitude decreases across one day centered on jde_tt.
auto astro::planet::observation::geometry (const Planet planet, const double jde_tt) -> astro::illumination::Geometry
 Calculate observer-facing geometry for a planet.

Variables

constexpr std::size_t astro::planet::detail::LIGHT_TIME_MAX_ITERATIONS
constexpr double astro::planet::detail::RETROGRADE_DIFFERENCE_HALF_WIDTH_DAYS
constexpr double astro::planet::geocentric_coord::PLUTO_START_JDE_TT
 Inclusive start of Pluto's apparent-position model, in JDE(TT).
constexpr double astro::planet::geocentric_coord::PLUTO_END_JDE_TT
 Exclusive end of Pluto's apparent-position model, in JDE(TT).