singularity-rs/src/params.rs

53 lines
1.5 KiB
Rust

use bevy::prelude::*;
/// All tunable black-hole parameters. Edited by the egui panel (Task 17),
/// mirrored into BlackHoleUniforms each frame (Task 7).
#[derive(Resource, Clone)]
pub struct BlackHoleParams {
// Physics (natural units, Rs = 1)
pub rs: f32,
// Accretion disk
pub disk_inner: f32,
pub disk_outer: f32,
pub disk_tilt: f32, // radians, tilt of disk plane vs. camera
pub disk_brightness: f32,
pub disk_rotation_speed: f32,
pub doppler_enabled: bool,
pub doppler_strength: f32,
// Renderer
pub steps: u32,
pub render_scale: f32,
pub star_intensity: f32,
pub grid_enabled: bool,
pub grid_density: f32,
// Background
pub skybox_intensity: f32,
// Planets (count matches the storage buffer; Task 14)
pub planet_count: u32,
// Kerr (Phase 2; unused in Phase 1)
pub spin: f32,
}
impl Default for BlackHoleParams {
fn default() -> Self {
Self {
rs: 1.0,
disk_inner: 3.0,
disk_outer: 15.0,
disk_tilt: 1.318, // ~75.5 deg, matching the reference video
disk_brightness: 1.0,
disk_rotation_speed: 0.5,
doppler_enabled: true,
doppler_strength: 1.0,
steps: 300,
render_scale: 1.0,
star_intensity: 1.0,
grid_enabled: false,
grid_density: 1.0,
skybox_intensity: 0.0, // procedural stars only by default
planet_count: 0,
spin: 0.0,
}
}
}