#[derive(Debug, Clone, Copy, PartialEq)]
pub struct RidgeFeature {
    pub name: &'static str,
    pub elevation_m: f64,
    pub slope_deg: f64,
}

impl RidgeFeature {
    pub fn relief_energy(&self) -> f64 {
        self.elevation_m * self.slope_deg.to_radians().tan()
    }
}

pub fn voltaire_rim() -> RidgeFeature {
    RidgeFeature {
        name: "Voltaire crater rim",
        elevation_m: 120.0,
        slope_deg: 8.0,
    }
}

pub fn swift_rim() -> RidgeFeature {
    RidgeFeature {
        name: "Swift crater rim",
        elevation_m: 60.0,
        slope_deg: 6.0,
    }
}
