pub struct VenusAtmosphereParams {
pub cloud_optical_depth: f64,
}
impl Default for VenusAtmosphereParams {
fn default() -> Self {
Self {
cloud_optical_depth: crate::MEAN_CLOUD_OPTICAL_DEPTH,
}
}
}
impl VenusAtmosphereParams {
pub fn sky_color(&self, sun_elevation_deg: f64) -> [f64; 3] {
if sun_elevation_deg.is_finite() {
[0.95, 0.85, 0.65]
} else {
[f64::NAN; 3]
}
}
pub fn direct_transmission(&self, sun_elevation_deg: f64) -> f64 {
if sun_elevation_deg.is_finite() {
(-self.cloud_optical_depth).exp()
} else {
f64::NAN
}
}
}