Browse Source

fix #3489 , scaling was missing when calculating delta position

Raanan Weber 7 years ago
parent
commit
d28d24103a

+ 1 - 0
src/Physics/Plugins/babylon.cannonJSPlugin.ts

@@ -402,6 +402,7 @@
             var center = impostor.getObjectCenter();
             //m.getAbsolutePosition().subtract(m.getBoundingInfo().boundingBox.centerWorld)
             this._tmpDeltaPosition.copyFrom(object.getAbsolutePivotPoint().subtract(center));
+            this._tmpDeltaPosition.divideInPlace(impostor.object.scaling);
             this._tmpPosition.copyFrom(center);
             var quaternion = object.rotationQuaternion;
 

+ 2 - 1
src/Physics/Plugins/babylon.oimoJSPlugin.ts

@@ -138,7 +138,8 @@ module BABYLON {
                     if (i === impostor) {
                         var center = impostor.getObjectCenter();
 
-                        impostor.object.position.subtractToRef(center, this._tmpPositionVector);
+                        impostor.object.getAbsolutePivotPoint().subtractToRef(center, this._tmpPositionVector);
+                        this._tmpPositionVector.divideInPlace(impostor.object.scaling);
 
                         //Can also use Array.prototype.push.apply
                         bodyConfig.pos.push(center.x);