use super::*;
impl FrameRotationProvider<TEME, EquatorialTrueOfDate> for () {
#[inline]
fn rotation<Eph, Eop: EopProvider, Nut>(
jd: JulianDate,
_ctx: &AstroContext<Eph, Eop, Nut>,
) -> Rotation3 {
let nut = nutation::nutation_iau2000b(jd);
Rotation3::rz(nut.dpsi * nut.mean_obliquity.cos())
}
}
impl FrameRotationProvider<EquatorialTrueOfDate, TEME> for () {
#[inline]
fn rotation<Eph, Eop: EopProvider, Nut>(
jd: JulianDate,
ctx: &AstroContext<Eph, Eop, Nut>,
) -> Rotation3 {
inverse_rotation::<EquatorialTrueOfDate, TEME, Eph, Eop, Nut>(jd, ctx)
}
}
impl FrameRotationProvider<TEME, ICRS> for () {
#[inline]
fn rotation<Eph, Eop: EopProvider, Nut>(
jd: JulianDate,
ctx: &AstroContext<Eph, Eop, Nut>,
) -> Rotation3 {
compose_rotation::<TEME, EquatorialTrueOfDate, ICRS, Eph, Eop, Nut>(jd, ctx)
}
}
impl FrameRotationProvider<ICRS, TEME> for () {
#[inline]
fn rotation<Eph, Eop: EopProvider, Nut>(
jd: JulianDate,
ctx: &AstroContext<Eph, Eop, Nut>,
) -> Rotation3 {
inverse_rotation::<ICRS, TEME, Eph, Eop, Nut>(jd, ctx)
}
}