feat(rapier_testbed): autosave testbed configuration + add support for per-example settings (#799)

* feat(rapier_testbed): autosave testbed configuration + add support for per-example parameters

* feat(rapier_testbed): also save the camera position

* feat(rapier_testbed): improve ergonomics of example-specific settings

* chore: cargo fmt

* chore(rapier_testbed): small UI ergonomics improvement

* chore(rapier_testbed): clippy fixes
This commit is contained in:
Sébastien Crozet
2025-02-21 17:52:46 +01:00
committed by GitHub
parent bf8e48e920
commit 5ca6ae9106
23 changed files with 358 additions and 195 deletions

View File

@@ -13,6 +13,7 @@ use rapier::math::{Isometry, Real, Vector};
//#[cfg(feature = "dim2")]
//use crate::objects::polyline::Polyline;
// use crate::objects::mesh::Mesh;
use crate::testbed::TestbedStateFlags;
use rand::{Rng, SeedableRng};
use rand_pcg::Pcg32;
use std::collections::HashMap;
@@ -362,9 +363,11 @@ impl GraphicsManager {
pub fn draw(
&mut self,
flags: TestbedStateFlags,
_bodies: &RigidBodySet,
colliders: &ColliderSet,
components: &mut Query<&mut Transform>,
visibilities: &mut Query<&mut Visibility>,
_materials: &mut Assets<BevyMaterial>,
) {
for (_, ns) in self.b2sn.iter_mut() {
@@ -386,6 +389,14 @@ impl GraphicsManager {
// }
// }
if let Ok(mut vis) = visibilities.get_mut(n.entity) {
if flags.contains(TestbedStateFlags::DRAW_SURFACES) {
*vis = Visibility::Inherited;
} else {
*vis = Visibility::Hidden;
}
}
n.update(colliders, components, &self.gfx_shift);
}
}