aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/ui.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2024-01-22 21:45:40 +0100
committerGitHub <noreply@github.com>2024-01-22 21:45:40 +0100
commitaef85ec2554476485dbf3de5f01257ced22bfe2f (patch)
tree0fbfae9a523835079c9a362a93a69f2e78ccca25 /src_testbed/ui.rs
parent9ac3503b879f95fcdf5414470ba5aedf195b9a97 (diff)
parent6cb727390a6172e539b3f0ef91c2861457495258 (diff)
downloadrapier-aef85ec2554476485dbf3de5f01257ced22bfe2f.tar.gz
rapier-aef85ec2554476485dbf3de5f01257ced22bfe2f.tar.bz2
rapier-aef85ec2554476485dbf3de5f01257ced22bfe2f.zip
Merge pull request #579 from dimforge/joints-improvements
Feat: implement a "small-steps" velocity-based constraints solver + joint improvements
Diffstat (limited to 'src_testbed/ui.rs')
-rw-r--r--src_testbed/ui.rs43
1 files changed, 13 insertions, 30 deletions
diff --git a/src_testbed/ui.rs b/src_testbed/ui.rs
index fee4abc..3a51b32 100644
--- a/src_testbed/ui.rs
+++ b/src_testbed/ui.rs
@@ -1,5 +1,6 @@
use rapier::counters::Counters;
use rapier::math::Real;
+use std::num::NonZeroUsize;
use crate::debug_render::DebugRenderPipelineResource;
use crate::harness::Harness;
@@ -98,43 +99,25 @@ pub fn update_ui(
let integration_parameters = &mut harness.physics.integration_parameters;
- ui.checkbox(
- &mut integration_parameters.interleave_restitution_and_friction_resolution,
- "interleave friction resolution",
- );
-
if state.selected_backend == PHYSX_BACKEND_PATCH_FRICTION
|| state.selected_backend == PHYSX_BACKEND_TWO_FRICTION_DIR
{
- ui.add(
- Slider::new(&mut integration_parameters.max_velocity_iterations, 1..=200)
- .text("pos. iters."),
- );
- ui.add(
- Slider::new(
- &mut integration_parameters.max_stabilization_iterations,
- 1..=200,
- )
- .text("vel. iters."),
- );
+ let mut num_iterations = integration_parameters.num_solver_iterations.get();
+ ui.add(Slider::new(&mut num_iterations, 1..=40).text("pos. iters."));
+ integration_parameters.num_solver_iterations =
+ NonZeroUsize::new(num_iterations).unwrap();
} else {
- ui.add(
- Slider::new(&mut integration_parameters.max_velocity_iterations, 1..=200)
- .text("vel. rest. iters."),
- );
- ui.add(
- Slider::new(
- &mut integration_parameters.max_velocity_friction_iterations,
- 1..=200,
- )
- .text("vel. frict. iters."),
- );
+ let mut num_iterations = integration_parameters.num_solver_iterations.get();
+ ui.add(Slider::new(&mut num_iterations, 1..=40).text("num solver iters."));
+ integration_parameters.num_solver_iterations =
+ NonZeroUsize::new(num_iterations).unwrap();
+
ui.add(
Slider::new(
- &mut integration_parameters.max_stabilization_iterations,
- 1..=200,
+ &mut integration_parameters.num_friction_iteration_per_solver_iteration,
+ 1..=40,
)
- .text("vel. stab. iters."),
+ .text("frict. iters. per solver iters."),
);
}