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

Azimuth computations for Sun, Moon, stars, and arbitrary ICRS directions. More...

#include "altitude.hpp"
#include "bodies.hpp"
#include "coordinates.hpp"
#include "ffi_core.hpp"
#include "time.hpp"
#include <ostream>
#include <vector>
Include dependency graph for azimuth.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  siderust::AzimuthCrossingEvent
 An azimuth bearing-crossing event. More...
 
struct  siderust::AzimuthExtremum
 An azimuth extremum event. More...
 

Namespaces

namespace  siderust
 
namespace  siderust::detail
 
namespace  siderust::sun
 
namespace  siderust::moon
 
namespace  siderust::star_altitude
 
namespace  siderust::icrs_altitude
 

Enumerations

enum class  siderust::AzimuthExtremumKind : int32_t { siderust::Max = 0 , siderust::Min = 1 }
 Distinguishes azimuth extrema: northernmost or southernmost bearing. More...
 

Functions

std::vector< AzimuthCrossingEventsiderust::detail::az_crossings_from_c (siderust_azimuth_crossing_event_t *ptr, uintptr_t count)
 
std::vector< AzimuthExtremumsiderust::detail::az_extrema_from_c (siderust_azimuth_extremum_t *ptr, uintptr_t count)
 
qtty::Degree siderust::sun::azimuth_at (const Geodetic &obs, const Time< TT, MJD > &mjd)
 Compute the Sun's azimuth (degrees, N-clockwise) at a given Time<TT, MJD> instant.
 
std::vector< AzimuthCrossingEventsiderust::sun::azimuth_crossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={})
 Find epochs when the Sun crosses a given bearing.
 
std::vector< AzimuthExtremumsiderust::sun::azimuth_extrema (const Geodetic &obs, const Period< TT, MJD > &window, const SearchOptions &opts={})
 Find azimuth extrema (northernmost / southernmost) for the Sun.
 
std::vector< Period< TT, MJD > > siderust::sun::in_azimuth_range (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_bearing, qtty::Degree max_bearing, const SearchOptions &opts={})
 Find periods when the Sun's azimuth is within [min_bearing, max_bearing].
 
std::vector< Period< TT, MJD > > siderust::sun::outside_azimuth_range (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_bearing, qtty::Degree max_bearing, const SearchOptions &opts={})
 Find periods when the Sun's azimuth is outside [min_bearing, max_bearing].
 
qtty::Degree siderust::moon::azimuth_at (const Geodetic &obs, const Time< TT, MJD > &mjd)
 Compute the Moon's azimuth (degrees, N-clockwise) at a given Time<TT, MJD> instant.
 
std::vector< AzimuthCrossingEventsiderust::moon::azimuth_crossings (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={})
 Find epochs when the Moon crosses a given bearing.
 
std::vector< AzimuthExtremumsiderust::moon::azimuth_extrema (const Geodetic &obs, const Period< TT, MJD > &window, const SearchOptions &opts={})
 Find azimuth extrema (northernmost / southernmost) for the Moon.
 
std::vector< Period< TT, MJD > > siderust::moon::in_azimuth_range (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_bearing, qtty::Degree max_bearing, const SearchOptions &opts={})
 Find periods when the Moon's azimuth is within [min_bearing, max_bearing].
 
std::vector< Period< TT, MJD > > siderust::moon::outside_azimuth_range (const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_bearing, qtty::Degree max_bearing, const SearchOptions &opts={})
 Find periods when the Moon's azimuth is outside [min_bearing, max_bearing].
 
qtty::Degree siderust::star_altitude::azimuth_at (const Star &s, const Geodetic &obs, const Time< TT, MJD > &mjd)
 Compute a star's azimuth (degrees, N-clockwise) at a given Time<TT, MJD> instant.
 
std::vector< AzimuthCrossingEventsiderust::star_altitude::azimuth_crossings (const Star &s, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={})
 Find epochs when a star crosses a given azimuth bearing.
 
std::vector< Period< TT, MJD > > siderust::star_altitude::in_azimuth_range (const Star &s, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_bearing, qtty::Degree max_bearing, const SearchOptions &opts={})
 Find periods when a star's azimuth is within [min, max] (degrees).
 
std::vector< Period< TT, MJD > > siderust::star_altitude::outside_azimuth_range (const Star &s, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree min_bearing, qtty::Degree max_bearing, const SearchOptions &opts={})
 Find periods when a star's azimuth is outside [min, max] (degrees).
 
qtty::Degree siderust::icrs_altitude::azimuth_at (const spherical::direction::ICRS &dir, const Geodetic &obs, const Time< TT, MJD > &mjd)
 Compute azimuth (degrees, N-clockwise) for a fixed ICRS direction.
 
qtty::Degree siderust::icrs_altitude::azimuth_at (qtty::Degree ra, qtty::Degree dec, const Geodetic &obs, const Time< TT, MJD > &mjd)
 Backward-compatible RA/Dec overload.
 
std::vector< AzimuthCrossingEventsiderust::icrs_altitude::azimuth_crossings (const spherical::direction::ICRS &dir, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={})
 Find epochs when an ICRS direction crosses a given azimuth bearing.
 
std::vector< AzimuthCrossingEventsiderust::icrs_altitude::azimuth_crossings (qtty::Degree ra, qtty::Degree dec, const Geodetic &obs, const Period< TT, MJD > &window, qtty::Degree bearing, const SearchOptions &opts={})
 Backward-compatible RA/Dec overload.
 
std::ostream & siderust::operator<< (std::ostream &os, AzimuthExtremumKind kind)
 Stream operator for AzimuthExtremumKind.
 

Detailed Description

Azimuth computations for Sun, Moon, stars, and arbitrary ICRS directions.

Wraps siderust-ffi's azimuth API with exception-safe C++ types and RAII-managed output arrays.

Covered computations

| Subject | azimuth_at | azimuth_crossings | azimuth_extrema | in_azimuth_range | outside_azimuth_range | |------—|:-------—:|:--------------—:|:------------—:|:-------------—:|:------------------—:| | Sun | ✓ | ✓ | ✓ | ✓ | ✓ | | Moon | ✓ | ✓ | ✓ | ✓ | ✓ | | Star | ✓ | ✓ | – | ✓ | ✓ | | ICRS | ✓ | ✓ | – | – | – |

Definition in file azimuth.hpp.