From cc25a57f4f21c8d3f7dd8edef8b38d8cdb922336 Mon Sep 17 00:00:00 2001 From: JannisX11 Date: Thu, 15 Oct 2020 16:33:25 +0200 Subject: [PATCH] Fix transform space issues of pivot tool --- js/preview/transformer.js | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/js/preview/transformer.js b/js/preview/transformer.js index 52ce10e2..c572ace4 100644 --- a/js/preview/transformer.js +++ b/js/preview/transformer.js @@ -1300,32 +1300,23 @@ beforeFirstChange(event) var difference = point[axis] - previousValue + var origin = Transformer.rotation_object.origin.slice() + + if (transform_space == 0) { + let vec = new THREE.Vector3(); + var rotation = new THREE.Quaternion(); + vec[axis] = difference; + Transformer.rotation_object.mesh.parent.getWorldQuaternion(rotation); + vec.applyQuaternion(rotation.inverse()); + origin.V3_add(vec.x, vec.y, vec.z); - if (Format.bone_rig && Group.selected) { - if (Modes.edit) { - var origin = Group.selected.origin.slice(); - origin[axisNumber] += difference; - Group.selected.transferOrigin(origin, true); - } else if (Modes.animate) { - Group.selected.origin[axisNumber] += difference; - } } else { - var origin = Transformer.rotation_object.origin.slice() - if (transform_space == 0) { - - - let vec = new THREE.Vector3(); - vec[axis] = difference; - - var rotation = new THREE.Quaternion(); - Transformer.rotation_object.mesh.parent.getWorldQuaternion(rotation); - vec.applyQuaternion(rotation.inverse()); - - origin.V3_add(vec.x, vec.y, vec.z); - - } else { - origin[axisNumber] += difference; - } + origin[axisNumber] += difference; + } + + if (Format.bone_rig && Group.selected) { + Group.selected.transferOrigin(origin, true); + } else { selected.forEach(obj => { if (obj.transferOrigin) { obj.transferOrigin(origin);