aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/testbed.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2024-01-24 22:19:08 +0100
committerGitHub <noreply@github.com>2024-01-24 22:19:08 +0100
commit51f5bd6cb466fa65ee755c1905e46ff405217143 (patch)
tree67e2a9666504c87fe993ee59b76df3fb1b70760d /src_testbed/testbed.rs
parentaef85ec2554476485dbf3de5f01257ced22bfe2f (diff)
parentd1fc90c150ff7ddd077f5770d4ac30108b5e6de5 (diff)
downloadrapier-51f5bd6cb466fa65ee755c1905e46ff405217143.tar.gz
rapier-51f5bd6cb466fa65ee755c1905e46ff405217143.tar.bz2
rapier-51f5bd6cb466fa65ee755c1905e46ff405217143.zip
Merge pull request #581 from dimforge/solver-pick
feat: rework solver parameters to make it easy to recover the old behaviors
Diffstat (limited to 'src_testbed/testbed.rs')
-rw-r--r--src_testbed/testbed.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs
index aac73e8..50e6c7a 100644
--- a/src_testbed/testbed.rs
+++ b/src_testbed/testbed.rs
@@ -101,6 +101,12 @@ bitflags! {
}
}
+#[derive(Copy, Clone, Debug, PartialEq, Eq)]
+pub enum RapierSolverType {
+ SmallStepsPgs,
+ StandardPgs,
+}
+
#[derive(Resource)]
pub struct TestbedState {
pub running: RunMode,
@@ -121,6 +127,7 @@ pub struct TestbedState {
pub example_names: Vec<&'static str>,
pub selected_example: usize,
pub selected_backend: usize,
+ pub solver_type: RapierSolverType,
pub physx_use_two_friction_directions: bool,
pub snapshot: Option<PhysicsSnapshot>,
nsteps: usize,
@@ -204,6 +211,7 @@ impl TestbedApp {
example_names: Vec::new(),
selected_example: 0,
selected_backend: RAPIER_BACKEND,
+ solver_type: RapierSolverType::SmallStepsPgs,
physx_use_two_friction_directions: true,
nsteps: 1,
camera_locked: false,
@@ -1189,6 +1197,14 @@ fn update_testbed(
if state.selected_example != prev_example {
harness.physics.integration_parameters = IntegrationParameters::default();
+
+ match state.solver_type {
+ RapierSolverType::SmallStepsPgs => {} // It’s already the default.
+ RapierSolverType::StandardPgs => harness
+ .physics
+ .integration_parameters
+ .switch_to_standard_pgs_solver(),
+ }
}
let selected_example = state.selected_example;