This repository was archived by the owner on Dec 24, 2023. It is now read-only.
This repository was archived by the owner on Dec 24, 2023. It is now read-only.
Ephemeris querying and frame transformations #8
Open
Description
This would allow transformation of a provided vector and frame into its equivalent representation in another frame.
Note that this always combines both the translation and rotation. Translation without rotation does not make sense in the physical world.
Proposed signatures
In the algorithms module
pub fn transform(position: &Vector3, at: &Anise.Epoch, from_frame: &Frame, into_frame: &Frame) -> Result<Vector3, AniseError>;
In an Anise context
impl Anise {
pub fn transform(&self, obj: &Anise.Ephemeris, at: &Anise.Epoch) -> Result<Vector6, AniseError>;
pub fn transform_position(&self, obj: &Anise.Ephemeris, at: &Anise.Epoch) -> Result<Vector3, AniseError>;
pub fn transform_velocity(&self, obj: &Anise.Ephemeris, at: &Anise.Epoch) -> Result<Vector3, AniseError>;
/// The same as above but with the provided light time calculations, cf. https://docs.rs/nyx-space/latest/nyx_space/cosmic/enum.LightTimeCalc.html .
pub fn transform_with_correction(&self, obj: &Anise.Ephemeris, at: &Anise.Epoch, lt: LightTimeCalc) -> Result<Vector6, AniseError>;
}