siderust-cpp 0.8.0
Header-only C++ wrapper for siderust
Loading...
Searching...
No Matches
twilight.hpp
Go to the documentation of this file.
1#pragma once
2
31#include "ffi_core.hpp"
32
33#include <qtty/qtty.hpp>
34
35namespace siderust {
36
42enum class TwilightPhase : int32_t {
43 Day = SIDERUST_TWILIGHT_PHASE_T_DAY,
44 Civil = SIDERUST_TWILIGHT_PHASE_T_CIVIL,
45 Nautical = SIDERUST_TWILIGHT_PHASE_T_NAUTICAL,
46 Astronomical = SIDERUST_TWILIGHT_PHASE_T_ASTRONOMICAL,
47 Dark = SIDERUST_TWILIGHT_PHASE_T_DARK,
48};
49
58inline TwilightPhase twilight_phase(qtty::Degree altitude) {
59 siderust_twilight_phase_t out{};
60 check_status(siderust_twilight_classification_deg(altitude.value(), &out), "twilight_phase");
61 return static_cast<TwilightPhase>(out);
62}
63
70inline TwilightPhase twilight_phase(qtty::Radian altitude) {
71 siderust_twilight_phase_t out{};
72 check_status(siderust_twilight_classification_rad(altitude.value(), &out), "twilight_phase(rad)");
73 return static_cast<TwilightPhase>(out);
74}
75
76} // namespace siderust
Error handling and utility base for the siderust C++ wrapper.
void check_status(siderust_status_t status, const char *operation)
Definition ffi_core.hpp:111
TwilightPhase
Sky-condition phase determined by the Sun's altitude.
Definition twilight.hpp:42
@ Day
Sun above horizon.
@ Nautical
-12° to -6°.
@ Astronomical
-18° to -12°.
TwilightPhase twilight_phase(qtty::Degree altitude)
Classify the sky condition from the Sun's altitude in degrees.
Definition twilight.hpp:58