pub trait RotationProvider<T: TimeScale>: OffsetProvider {
type EopError: Error + Send + Sync + 'static;
Show 26 methods
// Required methods
fn corrections(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Corrections, Self::EopError>;
fn pole_coords(&self, time: Time<T>) -> Result<PoleCoords, Self::EopError>;
// Provided methods
fn icrf_to_iau<R>(
&self,
time: Time<T>,
frame: Iau<R>,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
R: TryRotationalElements,
Self: TryOffset<T, Tdb> { ... }
fn iau_to_icrf<R>(
&self,
time: Time<T>,
frame: Iau<R>,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
R: TryRotationalElements,
Self: TryOffset<T, Tdb> { ... }
fn icrf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn itrf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn icrf_to_j2000(&self) -> Rotation { ... }
fn j2000_to_icrf(&self) -> Rotation { ... }
fn j2000_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn mod_to_j2000(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn icrf_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn mod_to_icrf(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn mod_to_tod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn tod_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn tod_to_pef(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn pef_to_tod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn pef_to_itrf(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn itrf_to_pef(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn tod_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn teme_to_tod(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn icrf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn cirf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn cirf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Ut1> { ... }
fn tirf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Ut1> { ... }
fn tirf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn itrf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: TimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
}Expand description
Provides Earth orientation data and frame rotation methods for a given time scale.
Required Associated Types§
Required Methods§
Sourcefn corrections(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Corrections, Self::EopError>
fn corrections( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Corrections, Self::EopError>
Returns nutation/precession corrections for the given reference system.
Sourcefn pole_coords(&self, time: Time<T>) -> Result<PoleCoords, Self::EopError>
fn pole_coords(&self, time: Time<T>) -> Result<PoleCoords, Self::EopError>
Returns polar motion coordinates at the given time.
Provided Methods§
Sourcefn icrf_to_iau<R>(
&self,
time: Time<T>,
frame: Iau<R>,
) -> Result<Rotation, RotationError>
fn icrf_to_iau<R>( &self, time: Time<T>, frame: Iau<R>, ) -> Result<Rotation, RotationError>
Rotation from ICRF to an IAU body-fixed frame.
Sourcefn iau_to_icrf<R>(
&self,
time: Time<T>,
frame: Iau<R>,
) -> Result<Rotation, RotationError>
fn iau_to_icrf<R>( &self, time: Time<T>, frame: Iau<R>, ) -> Result<Rotation, RotationError>
Rotation from an IAU body-fixed frame to ICRF.
Sourcefn icrf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn icrf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from ICRF to ITRF (via CIO-based path).
Sourcefn itrf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn itrf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from ITRF to ICRF.
Sourcefn icrf_to_j2000(&self) -> Rotation
fn icrf_to_j2000(&self) -> Rotation
Rotation from ICRF to J2000 (frame bias).
Sourcefn j2000_to_icrf(&self) -> Rotation
fn j2000_to_icrf(&self) -> Rotation
Rotation from J2000 to ICRF (inverse frame bias).
Sourcefn j2000_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn j2000_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from J2000 to Mean of Date.
Sourcefn mod_to_j2000(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn mod_to_j2000( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from Mean of Date to J2000.
Sourcefn icrf_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn icrf_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from ICRF to Mean of Date (bias + precession).
Sourcefn mod_to_icrf(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn mod_to_icrf( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from Mean of Date to ICRF.
Sourcefn mod_to_tod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn mod_to_tod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from Mean of Date to True of Date (nutation).
Sourcefn tod_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn tod_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from True of Date to Mean of Date.
Sourcefn tod_to_pef(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn tod_to_pef( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from True of Date to Pseudo-Earth Fixed (Earth rotation).
Sourcefn pef_to_tod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn pef_to_tod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from Pseudo-Earth Fixed to True of Date.
Sourcefn pef_to_itrf(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn pef_to_itrf( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from Pseudo-Earth Fixed to ITRF (polar motion).
Sourcefn itrf_to_pef(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
fn itrf_to_pef( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
Rotation from ITRF to Pseudo-Earth Fixed.
Sourcefn tod_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn tod_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from True of Date to TEME.
Sourcefn teme_to_tod(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn teme_to_tod(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from TEME to True of Date.
Sourcefn icrf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn icrf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from ICRF to CIRF (CIP + CIO).
Sourcefn cirf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn cirf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from CIRF to ICRF.
Sourcefn cirf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn cirf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from CIRF to TIRF (Earth rotation angle).
Sourcefn tirf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn tirf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from TIRF to CIRF.
Sourcefn tirf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn tirf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from TIRF to ITRF (polar motion).
Sourcefn itrf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn itrf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from ITRF to TIRF.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.