summaryrefslogtreecommitdiffstats
path: root/src/ui/bodies_window.rs
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-05-07 10:12:11 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-05-07 10:12:11 -0400
commitc9041e2e6fe59d6127bb1085b874e8e3cda8000e (patch)
treec339cf86b88743b1c74707f6d714b1a0950c43ff /src/ui/bodies_window.rs
parentc1adf64c1aaecd5a2b9d532d707ef35971f1aa18 (diff)
downloadsystemic4x-c9041e2e6fe59d6127bb1085b874e8e3cda8000e.tar.gz
systemic4x-c9041e2e6fe59d6127bb1085b874e8e3cda8000e.tar.bz2
systemic4x-c9041e2e6fe59d6127bb1085b874e8e3cda8000e.zip
more intense position-relative rendering to fix some precision problems
Diffstat (limited to 'src/ui/bodies_window.rs')
-rw-r--r--src/ui/bodies_window.rs41
1 files changed, 34 insertions, 7 deletions
diff --git a/src/ui/bodies_window.rs b/src/ui/bodies_window.rs
index 6300f5f..ece605b 100644
--- a/src/ui/bodies_window.rs
+++ b/src/ui/bodies_window.rs
@@ -4,6 +4,7 @@ use crate::eguictx::EguiCtx;
use crate::ntree::{NTree, NTreeNode};
use crate::solar_system::body::{BodyId, OrbitalBody};
use crate::solar_system::{SolarSystem, SystemId};
+use crate::timeman::TimeMan;
#[derive(Default, Clone)]
@@ -159,13 +160,39 @@ impl BodiesWindowState
};
ui.separator();
- egui::Frame::canvas(ui.style())
- .show(ui, |ui| {
- ui.set_width(200.0);
- ui.vertical_centered(|ui| {
- ui.label(
- egui::RichText::new(selected_body.name())
- .heading());
+ ui.vertical(|ui| {
+ egui::Frame::canvas(ui.style())
+ .show(ui, |ui| {
+ ui.set_width(200.0);
+ ui.vertical_centered(|ui| {
+ ui.label(
+ egui::RichText::new(selected_body.name())
+ .heading());
+ ui.separator();
+ });
+
+ ui.vertical(|ui| {
+ ui.vertical_centered(|ui| {
+ ui.label("Physical Properties");
+ });
+ ui.label(format!("Mass: {:.4E} kg", selected_body.mass()));
+ ui.label(format!("Radius: {} km", selected_body.radius()));
+
+ if let Some(orbit) = selected_body.get_orbit() {
+ ui.vertical_centered(|ui| {
+ ui.label("Orbital Properties");
+ });
+ ui.label(format!("Orbiting {}",
+ star_system.body(orbit.parent()).name()
+ ));
+ ui.label(format!("Period: {}",
+ TimeMan::format_duration(orbit.period(selected_body))
+ ));
+ ui.label(format!("Semi-major Axis: {:.4E} km",
+ orbit.sma()
+ ));
+ }
+ });
});
ui.horizontal(|ui| {