mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 18:44:00 +02:00
if another avatar has something hung from their camera, don't act like their camera is my camera
This commit is contained in:
parent
89d7b8bfc6
commit
e76f1c5937
2 changed files with 22 additions and 10 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue