#[derive(Debug, Clone, Copy, PartialEq)]
pub struct AsteroidShaderData {
pub cratering_density: f32,
pub regolith_depth_m: f32,
pub thermal_inertia: f32,
pub rotation_period_h: f32,
}
impl AsteroidShaderData {
pub fn rubble_pile() -> Self {
Self {
cratering_density: 0.3,
regolith_depth_m: 5.0,
thermal_inertia: 100.0,
rotation_period_h: 6.0,
}
}
pub fn monolithic() -> Self {
Self {
cratering_density: 0.6,
regolith_depth_m: 0.5,
thermal_inertia: 500.0,
rotation_period_h: 4.0,
}
}
pub fn fast_rotator() -> Self {
Self {
cratering_density: 0.2,
regolith_depth_m: 0.1,
thermal_inertia: 300.0,
rotation_period_h: 0.1,
}
}
}