From b3eec6ab986205b1bbc581644930decc2db3e18f Mon Sep 17 00:00:00 2001 From: LeXXik Date: Fri, 30 Aug 2024 23:28:16 +0300 Subject: [PATCH 1/2] update motion state on move --- src/physics/jolt/back/motion-state.mjs | 10 ++++++---- src/physics/jolt/back/operators/modifier.mjs | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/physics/jolt/back/motion-state.mjs b/src/physics/jolt/back/motion-state.mjs index 3a02eb7..0cf1073 100644 --- a/src/physics/jolt/back/motion-state.mjs +++ b/src/physics/jolt/back/motion-state.mjs @@ -6,8 +6,8 @@ class MotionState { constructor(body) { this._body = body; - this._updatePosition(body); - this._updateRotation(body); + this.updatePosition(); + this.updateRotation(); } compute(alpha, stepped) { @@ -105,7 +105,8 @@ class MotionState { return this._rotation; } - _updatePosition(body) { + updatePosition() { + const body = this._body; const bodyPos = body.GetPosition(); const p = { x: bodyPos.GetX(), y: bodyPos.GetY(), z: bodyPos.GetZ() }; @@ -114,7 +115,8 @@ class MotionState { this._oldPos = { x: p.x, y: p.y, z: p.z }; } - _updateRotation(body) { + updateRotation() { + const body = this._body; const bodyRot = body.GetRotation(); const r = { x: bodyRot.GetX(), y: bodyRot.GetY(), z: bodyRot.GetZ(), w: bodyRot.GetW() }; diff --git a/src/physics/jolt/back/operators/modifier.mjs b/src/physics/jolt/back/operators/modifier.mjs index a3462f5..4fd8890 100644 --- a/src/physics/jolt/back/operators/modifier.mjs +++ b/src/physics/jolt/back/operators/modifier.mjs @@ -429,6 +429,12 @@ class Modifier { } else { backend.bodyInterface.SetPositionAndRotation(body.GetID(), jv, jq, Jolt.EActivation_Activate); } + + const ms = body.motionState; + if (ms) { + ms.updatePosition(); + ms.updateRotation(); + } } catch (e) { if ($_DEBUG) { Debug.error(e); From 5e59e42796a9060577874aea95484382c561b748 Mon Sep 17 00:00:00 2001 From: LeXXik Date: Fri, 30 Aug 2024 23:30:08 +0300 Subject: [PATCH 2/2] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aad1d93..221ce66 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@gamebop/physics", "description": "Physics components for PlayCanvas engine", - "version": "0.3.0", + "version": "0.3.1", "main": "dist/physics.min.mjs", "author": "Gamebop", "license": "MIT",