if another avatar has something hung from their camera, don't act like their camera is my camera

This commit is contained in:
Seth Alves 2017-01-17 13:28:13 -08:00
parent 89d7b8bfc6
commit e76f1c5937
2 changed files with 22 additions and 10 deletions

View file

@ -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;

View file

@ -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);
}