Browse Source

Merge pull request #9715 from Fowlet/patch-1

Prevent AmmoJS applyForce modifying position param
sebavan 4 years ago
parent
commit
d8794be6f4
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/Physics/Plugins/ammoJSPlugin.ts

+ 6 - 2
src/Physics/Plugins/ammoJSPlugin.ts

@@ -378,12 +378,16 @@ export class AmmoJSPlugin implements IPhysicsEnginePlugin {
             var worldPoint = this._tmpAmmoVectorA;
             var impulse = this._tmpAmmoVectorB;
 
+            worldPoint.setValue(contactPoint.x, contactPoint.y, contactPoint.z);
+
             // Convert contactPoint relative to center of mass
             if (impostor.object && impostor.object.getWorldMatrix) {
-                contactPoint.subtractInPlace(impostor.object.getWorldMatrix().getTranslation());
+                var localTranslation = impostor.object.getWorldMatrix().getTranslation();
+                worldPoint.x -= localTranslation.x;
+                worldPoint.y -= localTranslation.y;
+                worldPoint.z -= localTranslation.z;
             }
 
-            worldPoint.setValue(contactPoint.x, contactPoint.y, contactPoint.z);
             impulse.setValue(force.x, force.y, force.z);
 
             impostor.physicsBody.applyForce(impulse, worldPoint);