hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/src/states/simulation_state.cpp
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2025-08-22 04:31:37 +0200
committerhachem <im@hachem.wtf>2025-08-22 04:31:37 +0200
commit2dd07499241638e66ee0df97cba91219f5599151 (patch)
tree443d39d8cec967a0d01502a60d7de23e2c5304fe /src/states/simulation_state.cpp
parent0d4f5f665f2e4b735fb4f978acc6c8d4a16fcb5d (diff)
feat: volumetric cloud rendering
Diffstat (limited to 'src/states/simulation_state.cpp')
-rw-r--r--src/states/simulation_state.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/states/simulation_state.cpp b/src/states/simulation_state.cpp
index 41f7b36..5c75569 100644
--- a/src/states/simulation_state.cpp
+++ b/src/states/simulation_state.cpp
@@ -220,6 +220,32 @@ namespace Donut
ImGui::Spacing();
+ ImGui::TextColored(ImVec4(0.9f, 0.9f, 1.0f, 1.0f), "Accretion Disk");
+ ImGui::Separator();
+
+ float disk_thickness = engine.get_disk_thickness();
+ if (ImGui::SliderFloat("Cloud Thickness", &disk_thickness, 0.1f, 2.0f, "%.2f"))
+ {
+ engine.set_disk_thickness(disk_thickness);
+ }
+ ImGui::TextDisabled("Thickness relative to Schwarzschild radius");
+
+ float disk_density = engine.get_disk_density();
+ if (ImGui::SliderFloat("Cloud Density", &disk_density, 0.1f, 3.0f, "%.2f"))
+ {
+ engine.set_disk_density(disk_density);
+ }
+ ImGui::TextDisabled("Overall density multiplier");
+
+ float rotation_speed = engine.get_rotation_speed();
+ if (ImGui::SliderFloat("Rotation Speed", &rotation_speed, 0.0f, 3.0f, "%.2f"))
+ {
+ engine.set_rotation_speed(rotation_speed);
+ }
+ ImGui::TextDisabled("Rotation speed multiplier (0 = no rotation)");
+
+ ImGui::Spacing();
+
ImGui::TextColored(ImVec4(0.9f, 0.9f, 1.0f, 1.0f), "Camera");
ImGui::Separator();