Fix dimforge#416 - update ball joint motor pos

This commit is contained in:
AnonymousAcid
2023-12-26 22:47:33 -08:00
committed by Sébastien Crozet
parent b96e61853b
commit 2ed34bacf4
2 changed files with 5 additions and 2 deletions

View File

@@ -1,11 +1,11 @@
use rapier3d::prelude::*; use rapier3d::prelude::*;
use rapier_testbed3d::{Testbed, TestbedApp}; use rapier_testbed3d::Testbed;
pub fn init_world(testbed: &mut Testbed) { pub fn init_world(testbed: &mut Testbed) {
let mut bodies = RigidBodySet::new(); let mut bodies = RigidBodySet::new();
let mut colliders = ColliderSet::new(); let mut colliders = ColliderSet::new();
let impulse_joints = ImpulseJointSet::new(); let mut impulse_joints = ImpulseJointSet::new();
let mut multibody_joints = MultibodyJointSet::new(); let mut multibody_joints = MultibodyJointSet::new();

View File

@@ -115,6 +115,9 @@ impl MultibodyJoint {
let angvel = Vector3::from_row_slice(&vels[curr_free_dof..curr_free_dof + 3]); let angvel = Vector3::from_row_slice(&vels[curr_free_dof..curr_free_dof + 3]);
let disp = UnitQuaternion::new_eps(angvel * dt, 0.0); let disp = UnitQuaternion::new_eps(angvel * dt, 0.0);
self.joint_rot = disp * self.joint_rot; self.joint_rot = disp * self.joint_rot;
self.coords[3] += angvel[0] * dt;
self.coords[4] += angvel[1] * dt;
self.coords[5] += angvel[2] * dt;
} }
_ => unreachable!(), _ => unreachable!(),
} }