venuss 0.0.3

Venus celestial simulation crate for the MilkyWay SolarSystem workspace
Documentation
pub struct SurfaceHazeEndpoint {
    pub air_density_kg_m3: f64,
    pub visibility_km: f64,
    pub haze_color_linear: [f64; 3],
    pub temperature_k: f64,
}

impl SurfaceHazeEndpoint {
    pub fn venus_default() -> Self {
        Self {
            air_density_kg_m3: crate::SURFACE_AIR_DENSITY,
            visibility_km: 1.0,
            haze_color_linear: [0.95, 0.80, 0.50],
            temperature_k: crate::MEAN_TEMPERATURE_K,
        }
    }

    pub fn extinction_coefficient_per_km(&self) -> f64 {
        3.912 / self.visibility_km
    }

    pub fn transmittance_at_range(&self, range_km: f64) -> f64 {
        (-self.extinction_coefficient_per_km() * range_km).exp()
    }
}

pub fn near_surface_visibility_km() -> f64 {
    1.0
}