diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-07-02 18:39:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-02 18:39:16 +0200 |
commit | 67e4082b1e73f3cbe518c499eb328b0f68f3419b (patch) | |
tree | ccb3953feff88ee0c6f7bf2013cb49e0404c2247 /servers/physics_3d/joints/slider_joint_3d_sw.cpp | |
parent | d12124856292e80c9069593ed263d72d01f60d02 (diff) | |
parent | ba27deef06f0152a59c86e3b0ab3ebb0976344ad (diff) |
Merge pull request #37350 from aaronfranke/force-impulse
Refactor physics force and impulse code to use (force, position) order
Diffstat (limited to 'servers/physics_3d/joints/slider_joint_3d_sw.cpp')
-rw-r--r-- | servers/physics_3d/joints/slider_joint_3d_sw.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/servers/physics_3d/joints/slider_joint_3d_sw.cpp b/servers/physics_3d/joints/slider_joint_3d_sw.cpp index 5b4609f24e..43bd49b4b5 100644 --- a/servers/physics_3d/joints/slider_joint_3d_sw.cpp +++ b/servers/physics_3d/joints/slider_joint_3d_sw.cpp @@ -197,8 +197,8 @@ void SliderJoint3DSW::solve(real_t p_step) { // calcutate and apply impulse real_t normalImpulse = softness * (restitution * depth / p_step - damping * rel_vel) * m_jacLinDiagABInv[i]; Vector3 impulse_vector = normal * normalImpulse; - A->apply_impulse(m_relPosA, impulse_vector); - B->apply_impulse(m_relPosB, -impulse_vector); + A->apply_impulse(impulse_vector, m_relPosA); + B->apply_impulse(-impulse_vector, m_relPosB); if (m_poweredLinMotor && (!i)) { // apply linear motor if (m_accumulatedLinMotorImpulse < m_maxLinMotorForce) { real_t desiredMotorVel = m_targetLinMotorVelocity; @@ -218,8 +218,8 @@ void SliderJoint3DSW::solve(real_t p_step) { m_accumulatedLinMotorImpulse = new_acc; // apply clamped impulse impulse_vector = normal * normalImpulse; - A->apply_impulse(m_relPosA, impulse_vector); - B->apply_impulse(m_relPosB, -impulse_vector); + A->apply_impulse(impulse_vector, m_relPosA); + B->apply_impulse(-impulse_vector, m_relPosB); } } } |