aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/joint_constraint/revolute_position_constraint.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/joint_constraint/revolute_position_constraint.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/joint_constraint/revolute_position_constraint.rs')
-rw-r--r--src/dynamics/solver/joint_constraint/revolute_position_constraint.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs b/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
index e46e0e4..19dd451 100644
--- a/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
+++ b/src/dynamics/solver/joint_constraint/revolute_position_constraint.rs
@@ -26,10 +26,10 @@ pub(crate) struct RevolutePositionConstraint {
impl RevolutePositionConstraint {
pub fn from_params(rb1: &RigidBody, rb2: &RigidBody, cparams: &RevoluteJoint) -> Self {
- let ii1 = rb1.world_inv_inertia_sqrt.squared();
- let ii2 = rb2.world_inv_inertia_sqrt.squared();
- let im1 = rb1.mass_properties.inv_mass;
- let im2 = rb2.mass_properties.inv_mass;
+ let ii1 = rb1.effective_world_inv_inertia_sqrt.squared();
+ let ii2 = rb2.effective_world_inv_inertia_sqrt.squared();
+ let im1 = rb1.effective_inv_mass;
+ let im2 = rb2.effective_inv_mass;
let lin_inv_lhs = 1.0 / (im1 + im2);
let ang_inv_lhs = (ii1 + ii2).inverse();