enceladuss 0.0.3

Enceladus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum EnceladusZone {
    TigerStripeRegion,
    CrateredNorth,
    SmoothPlains,
    SulcusZone,
    LeadingHemisphere,
}

#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SurfaceZone {
    pub zone: EnceladusZone,
    pub mean_albedo: f64,
    pub regolith_depth_m: f64,
}

pub fn zone_from_lat_lon(latitude_deg: f64, longitude_deg: f64) -> SurfaceZone {
    if latitude_deg < -55.0 {
        SurfaceZone {
            zone: EnceladusZone::TigerStripeRegion,
            mean_albedo: 0.99,
            regolith_depth_m: 3.0,
        }
    } else if latitude_deg > 45.0 {
        SurfaceZone {
            zone: EnceladusZone::CrateredNorth,
            mean_albedo: 0.95,
            regolith_depth_m: 12.0,
        }
    } else if longitude_deg.abs() > 120.0 {
        SurfaceZone {
            zone: EnceladusZone::SulcusZone,
            mean_albedo: 0.97,
            regolith_depth_m: 6.0,
        }
    } else if (0.0..=45.0).contains(&longitude_deg) && latitude_deg.abs() < 30.0 {
        SurfaceZone {
            zone: EnceladusZone::LeadingHemisphere,
            mean_albedo: 0.96,
            regolith_depth_m: 10.0,
        }
    } else {
        SurfaceZone {
            zone: EnceladusZone::SmoothPlains,
            mean_albedo: 0.98,
            regolith_depth_m: 8.0,
        }
    }
}