#[derive(Debug, Clone, Copy, PartialEq)]
pub struct EclipseGeometry {
pub umbra_radius_km: f64,
pub relative_velocity_km_s: f64,
}
impl EclipseGeometry {
pub fn totality_duration_minutes(&self) -> f64 {
2.0 * self.umbra_radius_km / self.relative_velocity_km_s / 60.0
}
}
pub fn typical_io_eclipse() -> EclipseGeometry {
EclipseGeometry {
umbra_radius_km: 69_911.0,
relative_velocity_km_s: 17.3,
}
}