aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_solver.rs
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-01-21 14:58:40 +0100
committerCrozet Sébastien <developer@crozet.re>2021-01-21 14:58:40 +0100
commit8f330b2a00610e5b68c1acd9208120e8f750c7aa (patch)
tree9526425839601340953ebe2b94bd2bbb36161579 /src/dynamics/solver/velocity_solver.rs
parentd69b5876f35a6d67e164e5e6dc5719413f53c4f5 (diff)
downloadrapier-8f330b2a00610e5b68c1acd9208120e8f750c7aa.tar.gz
rapier-8f330b2a00610e5b68c1acd9208120e8f750c7aa.tar.bz2
rapier-8f330b2a00610e5b68c1acd9208120e8f750c7aa.zip
Rotation locking: apply filter only to the world inertia properties to fix the multi-collider case.
Diffstat (limited to 'src/dynamics/solver/velocity_solver.rs')
-rw-r--r--src/dynamics/solver/velocity_solver.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dynamics/solver/velocity_solver.rs b/src/dynamics/solver/velocity_solver.rs
index dfb97b0..89cf34e 100644
--- a/src/dynamics/solver/velocity_solver.rs
+++ b/src/dynamics/solver/velocity_solver.rs
@@ -60,7 +60,9 @@ impl VelocitySolver {
bodies.foreach_active_island_body_mut_internal(island_id, |_, rb| {
let dvel = self.mj_lambdas[rb.active_set_offset];
rb.linvel += dvel.linear;
- rb.angvel += rb.world_inv_inertia_sqrt.transform_vector(dvel.angular);
+ rb.angvel += rb
+ .effective_world_inv_inertia_sqrt
+ .transform_vector(dvel.angular);
});
// Write impulses back into the manifold structures.