|
@@ -188,6 +188,7 @@ module BABYLON {
|
|
* @param mesh
|
|
* @param mesh
|
|
*/
|
|
*/
|
|
public updateBodyPosition = function (mesh: AbstractMesh): void {
|
|
public updateBodyPosition = function (mesh: AbstractMesh): void {
|
|
|
|
+
|
|
for (var index = 0; index < this._registeredMeshes.length; index++) {
|
|
for (var index = 0; index < this._registeredMeshes.length; index++) {
|
|
var registeredMesh = this._registeredMeshes[index];
|
|
var registeredMesh = this._registeredMeshes[index];
|
|
if (registeredMesh.mesh === mesh || registeredMesh.mesh === mesh.parent) {
|
|
if (registeredMesh.mesh === mesh || registeredMesh.mesh === mesh.parent) {
|
|
@@ -196,6 +197,19 @@ module BABYLON {
|
|
body.setOrientation(mesh.rotation.x, mesh.rotation.y, mesh.rotation.z);
|
|
body.setOrientation(mesh.rotation.x, mesh.rotation.y, mesh.rotation.z);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ // Case where the parent has been updated
|
|
|
|
+ if (registeredMesh.mesh.parent === mesh) {
|
|
|
|
+ mesh.computeWorldMatrix(true);
|
|
|
|
+ registeredMesh.mesh.computeWorldMatrix(true);
|
|
|
|
+
|
|
|
|
+ var absolutePosition = registeredMesh.mesh.getAbsolutePosition();
|
|
|
|
+ var absoluteRotation = mesh.rotation;
|
|
|
|
+
|
|
|
|
+ var body = registeredMesh.body.body;
|
|
|
|
+ body.setPosition(absolutePosition.x, absolutePosition.y, absolutePosition.z);
|
|
|
|
+ body.setOrientation(absoluteRotation.x, absoluteRotation.y, absoluteRotation.z);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|