lox_frames/
transformations.rs

1// SPDX-FileCopyrightText: 2025 Helge Eichhorn <git@helgeeichhorn.de>
2//
3// SPDX-License-Identifier: MPL-2.0
4
5use lox_time::{Time, offsets::OffsetProvider, time_scales::TimeScale};
6
7pub use rotations::Rotation;
8
9use crate::ReferenceFrame;
10
11pub mod iau;
12pub mod rotations;
13
14pub trait TransformProvider: OffsetProvider {}
15
16pub trait TryTransform<Origin, Target, T>: TransformProvider
17where
18    Origin: ReferenceFrame,
19    Target: ReferenceFrame,
20    T: TimeScale,
21{
22    type Error: std::error::Error + Send + Sync + 'static;
23
24    fn try_transform(
25        &self,
26        origin: Origin,
27        target: Target,
28        time: Time<T>,
29    ) -> Result<Rotation, Self::Error>;
30}