mirror of
https://thingvellir.net/git/overte
synced 2025-03-27 23:52:03 +01: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();
|
return controllerRightHandTransform.getRotation();
|
||||||
}
|
}
|
||||||
case CAMERA_MATRIX_INDEX: {
|
case CAMERA_MATRIX_INDEX: {
|
||||||
bool success;
|
// XXX
|
||||||
Transform avatarTransform;
|
glm::quat rotation;
|
||||||
Transform::mult(avatarTransform, getParentTransform(success), getLocalTransform());
|
_skeletonModel->getAbsoluteJointRotationInRigFrame(getJointIndex("head"), rotation);
|
||||||
glm::mat4 invAvatarMat = avatarTransform.getInverseMatrix();
|
return rotation;
|
||||||
return glmExtractRotation(invAvatarMat * qApp->getCamera()->getTransform());
|
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
glm::quat rotation;
|
glm::quat rotation;
|
||||||
|
@ -961,11 +960,10 @@ glm::vec3 Avatar::getAbsoluteJointTranslationInObjectFrame(int index) const {
|
||||||
return controllerRightHandTransform.getTranslation();
|
return controllerRightHandTransform.getTranslation();
|
||||||
}
|
}
|
||||||
case CAMERA_MATRIX_INDEX: {
|
case CAMERA_MATRIX_INDEX: {
|
||||||
bool success;
|
// XXX
|
||||||
Transform avatarTransform;
|
glm::vec3 translation;
|
||||||
Transform::mult(avatarTransform, getParentTransform(success), getLocalTransform());
|
_skeletonModel->getAbsoluteJointTranslationInRigFrame(getJointIndex("head"), translation);
|
||||||
glm::mat4 invAvatarMat = avatarTransform.getInverseMatrix();
|
return translation;
|
||||||
return extractTranslation(invAvatarMat * qApp->getCamera()->getTransform());
|
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
glm::vec3 translation;
|
glm::vec3 translation;
|
||||||
|
|
|
@ -2387,6 +2387,13 @@ glm::quat MyAvatar::getAbsoluteJointRotationInObjectFrame(int index) const {
|
||||||
glm::mat4 result = computeCameraRelativeHandControllerMatrix(controllerSensorMatrix);
|
glm::mat4 result = computeCameraRelativeHandControllerMatrix(controllerSensorMatrix);
|
||||||
return glmExtractRotation(result);
|
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: {
|
default: {
|
||||||
return Avatar::getAbsoluteJointRotationInObjectFrame(index);
|
return Avatar::getAbsoluteJointRotationInObjectFrame(index);
|
||||||
}
|
}
|
||||||
|
@ -2413,6 +2420,13 @@ glm::vec3 MyAvatar::getAbsoluteJointTranslationInObjectFrame(int index) const {
|
||||||
glm::mat4 result = computeCameraRelativeHandControllerMatrix(controllerSensorMatrix);
|
glm::mat4 result = computeCameraRelativeHandControllerMatrix(controllerSensorMatrix);
|
||||||
return extractTranslation(result);
|
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: {
|
default: {
|
||||||
return Avatar::getAbsoluteJointTranslationInObjectFrame(index);
|
return Avatar::getAbsoluteJointTranslationInObjectFrame(index);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue