aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/parallel_velocity_solver.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-01-23 08:56:27 -0800
committerGitHub <noreply@github.com>2022-01-23 08:56:27 -0800
commit1608a1323ed76cdf33644cfea599cea715acf7a9 (patch)
tree07b975a2b22b31f74a5efcbaa3d2a30aea31ae47 /src/dynamics/solver/parallel_velocity_solver.rs
parentca635674fc72071d7ff546a749ac22766579b280 (diff)
parentb3b675d2de64d4437748ad46e41cca90c691de1a (diff)
downloadrapier-1608a1323ed76cdf33644cfea599cea715acf7a9.tar.gz
rapier-1608a1323ed76cdf33644cfea599cea715acf7a9.tar.bz2
rapier-1608a1323ed76cdf33644cfea599cea715acf7a9.zip
Merge pull request #282 from dimforge/critical-damping
Improve the CFM implementation
Diffstat (limited to 'src/dynamics/solver/parallel_velocity_solver.rs')
-rw-r--r--src/dynamics/solver/parallel_velocity_solver.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/dynamics/solver/parallel_velocity_solver.rs b/src/dynamics/solver/parallel_velocity_solver.rs
index 69ceb03..00668b1 100644
--- a/src/dynamics/solver/parallel_velocity_solver.rs
+++ b/src/dynamics/solver/parallel_velocity_solver.rs
@@ -54,6 +54,7 @@ impl ParallelVelocitySolver {
let joint_descs = &joint_constraints.constraint_descs[..];
let mut target_num_desc = 0;
let mut shift = 0;
+ let cfm_factor = params.cfm_factor();
for _ in 0..params.max_velocity_iterations {
macro_rules! solve {
@@ -116,7 +117,13 @@ impl ParallelVelocitySolver {
);
shift += joint_descs.len();
start_index -= joint_descs.len();
- solve!(contact_constraints, &mut self.mj_lambdas, true, true);
+ solve!(
+ contact_constraints,
+ cfm_factor,
+ &mut self.mj_lambdas,
+ true,
+ true
+ );
shift += contact_descs.len();
start_index -= contact_descs.len();
}