From 5e6c0870e7d20cfd43a1a78531bd5dd2676d9ee6 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 17 Oct 2017 12:36:15 -0700 Subject: [PATCH 1/2] handle camera-relative controller joints for other avatars --- libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index 87d4a2d343..f674a2206e 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -994,10 +994,12 @@ glm::quat Avatar::getAbsoluteJointRotationInObjectFrame(int index) const { glm::mat4 finalMat = glm::inverse(avatarMatrix) * sensorToWorldMatrix; return glmExtractRotation(finalMat); } + case CAMERA_RELATIVE_CONTROLLER_LEFTHAND_INDEX: case CONTROLLER_LEFTHAND_INDEX: { Transform controllerLeftHandTransform = Transform(getControllerLeftHandMatrix()); return controllerLeftHandTransform.getRotation(); } + case CAMERA_RELATIVE_CONTROLLER_RIGHTHAND_INDEX: case CONTROLLER_RIGHTHAND_INDEX: { Transform controllerRightHandTransform = Transform(getControllerRightHandMatrix()); return controllerRightHandTransform.getRotation(); @@ -1032,10 +1034,12 @@ glm::vec3 Avatar::getAbsoluteJointTranslationInObjectFrame(int index) const { glm::mat4 finalMat = glm::inverse(avatarMatrix) * sensorToWorldMatrix; return extractTranslation(finalMat); } + case CAMERA_RELATIVE_CONTROLLER_LEFTHAND_INDEX: case CONTROLLER_LEFTHAND_INDEX: { Transform controllerLeftHandTransform = Transform(getControllerLeftHandMatrix()); return controllerLeftHandTransform.getTranslation(); } + case CAMERA_RELATIVE_CONTROLLER_RIGHTHAND_INDEX: case CONTROLLER_RIGHTHAND_INDEX: { Transform controllerRightHandTransform = Transform(getControllerRightHandMatrix()); return controllerRightHandTransform.getTranslation(); From f1abb0cd5510bf563f69670a869776377aae2405 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 17 Oct 2017 18:59:12 -0700 Subject: [PATCH 2/2] don't send avatar-entity updates for queryCube-changes, because avatar-entities don't use them --- interface/src/avatar/MyAvatar.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 5d82405aee..cccc13711d 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -594,7 +594,9 @@ void MyAvatar::simulate(float deltaTime) { if (success) { moveOperator.addEntityToMoveList(entity, newCube); } - if (packetSender) { + // send an edit packet to update the entity-server about the queryAABox. If it's an + // avatar-entity, don't. + if (packetSender && !entity->getClientOnly()) { EntityItemProperties properties = entity->getProperties(); properties.setQueryAACubeDirty(); properties.setLastEdited(now);