mountcontrol/cxx/mcc_erfa.h
2025-06-18 10:07:22 +03:00

45 lines
972 B
C++

#pragma once
/* MOUNT CONTROL COMPONENTS LIBRARY */
/* ERFA-LIBRARY WRAPPER FUNCTIONS */
#include "mcc_mount_coord.h"
namespace mcc::erfa
{
#include <erfa.h>
#include <erfam.h>
/*
* hour angle and declination to azimuth and altitude
*
*/
template <std::convertible_to<MccAngleHA> HaT,
std::convertible_to<MccAngleDEC_APP> DecT,
std::convertible_to<MccAngleLAT> LatT,
std::convertible_to<MccAngleAZ> AzT,
std::convertible_to<MccAngleALT> AltT>
void hadec2azalt(const HaT& ha, const DecT& dec, const LatT& lat, AzT& az, AltT& alt)
{
double az_d, alt_d;
eraHd2ae(ha, dec, lat, &az_d, &alt_d);
az = az_d;
alt = alt_d;
}
template <std::convertible_to<MccAngleHA> HaT,
std::convertible_to<MccAngleDEC_APP> DecT,
std::convertible_to<MccAngleLAT> LatT>
MccAngle hadec2pa(const HaT& ha, const DecT& dec, const LatT& lat)
{
return eraHd2pa(ha, dec, lat);
}
} // namespace mcc::erfa