cometsfactory 0.0.3

Comet factory — classify, build and catalogue comets of any type: short-period, long-period, Halley-type, sungrazer, interstellar, main-belt comet, centaur-transition, and extinct.
Documentation
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct CometMaterial {
    pub nucleus_albedo: [f32; 3],
    pub nucleus_roughness: f32,
    pub coma_color: [f32; 3],
    pub coma_opacity: f32,
    pub tail_dust_color: [f32; 3],
    pub tail_ion_color: [f32; 3],
}

impl CometMaterial {
    pub fn active_near_perihelion() -> Self {
        Self {
            nucleus_albedo: [0.04, 0.03, 0.03],
            nucleus_roughness: 0.95,
            coma_color: [0.8, 0.85, 0.9],
            coma_opacity: 0.3,
            tail_dust_color: [1.0, 0.9, 0.7],
            tail_ion_color: [0.3, 0.5, 1.0],
        }
    }

    pub fn distant_inactive() -> Self {
        Self {
            nucleus_albedo: [0.04, 0.03, 0.03],
            nucleus_roughness: 0.95,
            coma_color: [0.0; 3],
            coma_opacity: 0.0,
            tail_dust_color: [0.0; 3],
            tail_ion_color: [0.0; 3],
        }
    }

    pub fn jet_active() -> Self {
        Self {
            nucleus_albedo: [0.05, 0.04, 0.04],
            nucleus_roughness: 0.9,
            coma_color: [0.7, 0.8, 0.9],
            coma_opacity: 0.5,
            tail_dust_color: [1.0, 0.85, 0.6],
            tail_ion_color: [0.2, 0.4, 0.9],
        }
    }
}