use crate::solar_system::{Angle, BodyId, Kilometers, OrbitalBody, Percentage}; use crate::timeman::{Second}; pub struct StaticOrbit { pub parent: Option, pub eccentricity: Percentage, pub inclination: Angle, pub long_asc_node: Angle, pub long_periapsis: Angle, pub mean_long: Angle, pub semi_major_axis: Kilometers, } impl StaticOrbit { pub fn period( &self, this_body: &OrbitalBody) -> Second { ((self.semi_major_axis.powf(3.0) / this_body.sgp).sqrt() * std::f64::consts::TAU) as u64 } pub fn parent(&self) -> Option { self.parent } }