pub trait RotationProvider<T: ContinuousTimeScale>: OffsetProvider {
type EopError: Error + Send + Sync + 'static;
Show 28 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: ContinuousTimeScale + Copy,
R: TryRotationalElements,
Self: TryOffset<T, Tdb> { ... }
fn iau_to_icrf<R>(
&self,
time: Time<T>,
frame: Iau<R>,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
R: TryRotationalElements,
Self: TryOffset<T, Tdb> { ... }
fn icrf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn itrf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + 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: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn mod_to_j2000(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn icrf_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn mod_to_icrf(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn mod_to_tod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn tod_to_mod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn tod_to_pef(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn pef_to_tod(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> + TryOffset<T, Ut1> { ... }
fn pef_to_itrf(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn itrf_to_pef(
&self,
time: Time<T>,
sys: ReferenceSystem,
) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn tod_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn teme_to_tod(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn icrf_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> + TryOffset<T, Tdb> { ... }
fn teme_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> + TryOffset<T, Tdb> { ... }
fn icrf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn cirf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tdb> { ... }
fn cirf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Ut1> { ... }
fn tirf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Ut1> { ... }
fn tirf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy,
Self: TryOffset<T, Tt> { ... }
fn itrf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + 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_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn icrf_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from ICRF to TEME (classical FK5 chain).
Sourcefn teme_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
fn teme_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
Rotation from TEME to ICRF.
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".