tritons 0.0.3

Triton celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TritonZone {
    CantaloupeTerrain,
    MonadRegio,
    N2IceCap,
    GeyserField,
    SmoothPlains,
}

#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SurfaceZone {
    pub zone: TritonZone,
    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 < -60.0 {
        SurfaceZone {
            zone: TritonZone::N2IceCap,
            mean_albedo: 0.85,
            regolith_depth_m: 1.0,
        }
    } else if latitude_deg < -30.0 && longitude_deg < 60.0 {
        SurfaceZone {
            zone: TritonZone::GeyserField,
            mean_albedo: 0.70,
            regolith_depth_m: 3.0,
        }
    } else if latitude_deg > 0.0 && (280.0..=360.0).contains(&longitude_deg) {
        SurfaceZone {
            zone: TritonZone::MonadRegio,
            mean_albedo: 0.55,
            regolith_depth_m: 5.0,
        }
    } else if latitude_deg.abs() < 15.0 {
        SurfaceZone {
            zone: TritonZone::SmoothPlains,
            mean_albedo: 0.60,
            regolith_depth_m: 8.0,
        }
    } else {
        SurfaceZone {
            zone: TritonZone::CantaloupeTerrain,
            mean_albedo: 0.50,
            regolith_depth_m: 10.0,
        }
    }
}