From 89d7b8bfc6b0890e8356b7416d2b39ea9bcc1163 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 17 Jan 2017 13:27:01 -0800 Subject: [PATCH 1/3] call releaseEquip when an equipped entity is dropped with a secondary press --- scripts/system/controllers/handControllerGrab.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js index 865ed91c96..ca5bc08c7e 100644 --- a/scripts/system/controllers/handControllerGrab.js +++ b/scripts/system/controllers/handControllerGrab.js @@ -2418,6 +2418,7 @@ function MyController(hand) { // we have an equipped object and the secondary trigger was released // short-circuit the other checks and release it this.preparingHoldRelease = false; + this.callEntityMethodOnGrabbed("releaseEquip"); this.setState(STATE_OFF, "equipping ended via secondary press"); return; } From e76f1c5937d747b56c82b3cceefe564953c4e38f Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 17 Jan 2017 13:28:13 -0800 Subject: [PATCH 2/3] if another avatar has something hung from their camera, don't act like their camera is my camera --- interface/src/avatar/Avatar.cpp | 18 ++++++++---------- interface/src/avatar/MyAvatar.cpp | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 4a11c06473..44bc57bd90 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -928,11 +928,10 @@ glm::quat Avatar::getAbsoluteJointRotationInObjectFrame(int index) const { return controllerRightHandTransform.getRotation(); } case CAMERA_MATRIX_INDEX: { - bool success; - Transform avatarTransform; - Transform::mult(avatarTransform, getParentTransform(success), getLocalTransform()); - glm::mat4 invAvatarMat = avatarTransform.getInverseMatrix(); - return glmExtractRotation(invAvatarMat * qApp->getCamera()->getTransform()); + // XXX + glm::quat rotation; + _skeletonModel->getAbsoluteJointRotationInRigFrame(getJointIndex("head"), rotation); + return rotation; } default: { glm::quat rotation; @@ -961,11 +960,10 @@ glm::vec3 Avatar::getAbsoluteJointTranslationInObjectFrame(int index) const { return controllerRightHandTransform.getTranslation(); } case CAMERA_MATRIX_INDEX: { - bool success; - Transform avatarTransform; - Transform::mult(avatarTransform, getParentTransform(success), getLocalTransform()); - glm::mat4 invAvatarMat = avatarTransform.getInverseMatrix(); - return extractTranslation(invAvatarMat * qApp->getCamera()->getTransform()); + // XXX + glm::vec3 translation; + _skeletonModel->getAbsoluteJointTranslationInRigFrame(getJointIndex("head"), translation); + return translation; } default: { glm::vec3 translation; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 488752b309..8a1b174188 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2387,6 +2387,13 @@ glm::quat MyAvatar::getAbsoluteJointRotationInObjectFrame(int index) const { glm::mat4 result = computeCameraRelativeHandControllerMatrix(controllerSensorMatrix); return glmExtractRotation(result); } + case CAMERA_MATRIX_INDEX: { + bool success; + Transform avatarTransform; + Transform::mult(avatarTransform, getParentTransform(success), getLocalTransform()); + glm::mat4 invAvatarMat = avatarTransform.getInverseMatrix(); + return glmExtractRotation(invAvatarMat * qApp->getCamera()->getTransform()); + } default: { return Avatar::getAbsoluteJointRotationInObjectFrame(index); } @@ -2413,6 +2420,13 @@ glm::vec3 MyAvatar::getAbsoluteJointTranslationInObjectFrame(int index) const { glm::mat4 result = computeCameraRelativeHandControllerMatrix(controllerSensorMatrix); return extractTranslation(result); } + case CAMERA_MATRIX_INDEX: { + bool success; + Transform avatarTransform; + Transform::mult(avatarTransform, getParentTransform(success), getLocalTransform()); + glm::mat4 invAvatarMat = avatarTransform.getInverseMatrix(); + return extractTranslation(invAvatarMat * qApp->getCamera()->getTransform()); + } default: { return Avatar::getAbsoluteJointTranslationInObjectFrame(index); } From be165b567ef3bc3393cb26c74bf96813e8baa270 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 17 Jan 2017 13:32:58 -0800 Subject: [PATCH 3/3] remove XXX comments --- interface/src/avatar/Avatar.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 44bc57bd90..ff9ad8597c 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -928,7 +928,6 @@ glm::quat Avatar::getAbsoluteJointRotationInObjectFrame(int index) const { return controllerRightHandTransform.getRotation(); } case CAMERA_MATRIX_INDEX: { - // XXX glm::quat rotation; _skeletonModel->getAbsoluteJointRotationInRigFrame(getJointIndex("head"), rotation); return rotation; @@ -960,7 +959,6 @@ glm::vec3 Avatar::getAbsoluteJointTranslationInObjectFrame(int index) const { return controllerRightHandTransform.getTranslation(); } case CAMERA_MATRIX_INDEX: { - // XXX glm::vec3 translation; _skeletonModel->getAbsoluteJointTranslationInRigFrame(getJointIndex("head"), translation); return translation;