This commit is contained in:
Timur A. Fatkhullin 2025-12-29 16:11:23 +03:00
parent fd2776084a
commit 66c3c7e6c7

View File

@ -282,11 +282,32 @@ public:
error_t obs2icrs(mcc_coord_pair_c auto const& xy_obs, MccSkyRADEC_ICRS* radec_icrs) {} error_t obs2icrs(mcc_coord_pair_c auto const& xy_obs, MccSkyRADEC_ICRS* radec_icrs) {}
error_t equationOrigins(const mcc_julday_c auto& MJD, mcc_angle_c auto* EO) error_t equationOrigins(const mcc_julday_c auto& mjd, mcc_angle_c auto* eo)
{ {
if (EO == nullptr) { if (eo == nullptr) {
return MccCCTE_ERFAErrorCode::ERROR_NULLPTR; return MccCCTE_ERFAErrorCode::ERROR_NULLPTR;
} }
error_t ret = MccCCTE_ERFAErrorCode::ERROR_OK;
std::lock_guard lock{*_stateMutex};
using real_days_t = std::chrono::duration<double, std::ratio<86400>>;
auto tai_utc = _currentState._leapSeconds[mjd];
if (tai_utc.has_value()) {
double tt = mjd;
tt += std::chrono::duration_cast<real_days_t>(tai_utc.value()).count();
auto tt_tai = _currentState._bulletinA.TT_TAI();
tt += +std::chrono::duration_cast<real_days_t>(tt_tai).count();
*eo = eraEo06a(ERFA_DJM0, tt);
} else {
ret = MccCCTE_ERFAErrorCode::ERROR_LEAPSECONDS_OUT_OF_RANGE;
}
return ret;
} }
// refraction // refraction