diff options
| -rw-r--r-- | src/renderer/ui.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/renderer/ui.rs b/src/renderer/ui.rs index 46fb853..db43457 100644 --- a/src/renderer/ui.rs +++ b/src/renderer/ui.rs @@ -1,4 +1,5 @@ use egui::{Color32, Stroke, Ui, epaint::CircleShape}; +use rapier2d::pipeline::QueryFilter; use crate::{ Camera, Config, Diagnostics, @@ -151,4 +152,26 @@ pub fn draw_egui<'a>( ui.label(egui::RichText::new(format!("Flags: {:b}", cell.flags)).color(Color32::YELLOW)); ui.label(egui::RichText::new(format!("Data: {:b}", cell.data)).color(Color32::RED)); } + + let mut colliders_at_mouse = sim + .rb_manager + .physics_manager + .world + .intersect_point(input_manager.world_mouse_pos, QueryFilter::only_dynamic()); + if let Some((_, collider)) = colliders_at_mouse.next() + && let Some(rb_h) = collider.parent() + && let Some(rb) = sim.rb_manager.physics_manager.world.bodies.get(rb_h) + { + ui.label("RB"); + ui.label(format!( + "Position: {}, rotation: {}", + rb.translation(), + rb.rotation().angle() + )); + ui.label(format!( + "Velocity: {}, sleeping: {}", + rb.linvel(), + rb.is_sleeping() + )); + } } |
