aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_solver.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/dynamics/solver/velocity_solver.rs')
-rw-r--r--src/dynamics/solver/velocity_solver.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/dynamics/solver/velocity_solver.rs b/src/dynamics/solver/velocity_solver.rs
index 9d5c279..a4e03b2 100644
--- a/src/dynamics/solver/velocity_solver.rs
+++ b/src/dynamics/solver/velocity_solver.rs
@@ -205,17 +205,19 @@ impl VelocitySolver {
/*
* Resolution without bias.
*/
- for _ in 0..params.num_internal_stabilization_iterations {
- joint_constraints
- .solve_wo_bias(&mut self.solver_vels, &mut self.generic_solver_vels);
- contact_constraints.solve_restitution_wo_bias(
- &mut self.solver_vels,
- &mut self.generic_solver_vels,
- );
- }
+ if params.num_internal_stabilization_iterations > 0 {
+ for _ in 0..params.num_internal_stabilization_iterations {
+ joint_constraints
+ .solve_wo_bias(&mut self.solver_vels, &mut self.generic_solver_vels);
+ contact_constraints.solve_restitution_wo_bias(
+ &mut self.solver_vels,
+ &mut self.generic_solver_vels,
+ );
+ }
- contact_constraints
- .solve_friction(&mut self.solver_vels, &mut self.generic_solver_vels);
+ contact_constraints
+ .solve_friction(&mut self.solver_vels, &mut self.generic_solver_vels);
+ }
}
}