mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 09:17:29 +02:00
Merge branch 'master' of github.com:highfidelity/hifi into no-url-logging
This commit is contained in:
commit
ad7266062d
3 changed files with 11 additions and 6 deletions
|
@ -1972,6 +1972,7 @@ AnimPose Rig::getJointPose(int jointIndex) const {
|
||||||
void Rig::copyJointsIntoJointData(QVector<JointData>& jointDataVec) const {
|
void Rig::copyJointsIntoJointData(QVector<JointData>& jointDataVec) const {
|
||||||
|
|
||||||
const AnimPose geometryToRigPose(_geometryToRigTransform);
|
const AnimPose geometryToRigPose(_geometryToRigTransform);
|
||||||
|
const glm::vec3 geometryToRigScale(geometryToRigPose.scale());
|
||||||
|
|
||||||
jointDataVec.resize((int)getJointStateCount());
|
jointDataVec.resize((int)getJointStateCount());
|
||||||
for (auto i = 0; i < jointDataVec.size(); i++) {
|
for (auto i = 0; i < jointDataVec.size(); i++) {
|
||||||
|
@ -1984,9 +1985,10 @@ void Rig::copyJointsIntoJointData(QVector<JointData>& jointDataVec) const {
|
||||||
|
|
||||||
// translations are in relative frame but scaled so that they are in meters,
|
// translations are in relative frame but scaled so that they are in meters,
|
||||||
// instead of model units.
|
// instead of model units.
|
||||||
glm::vec3 defaultRelTrans = _geometryOffset.scale() * _animSkeleton->getRelativeDefaultPose(i).trans();
|
glm::vec3 defaultRelTrans = _animSkeleton->getRelativeDefaultPose(i).trans();
|
||||||
data.translation = _geometryOffset.scale() * (!_sendNetworkNode ? _internalPoseSet._relativePoses[i].trans() : _networkPoseSet._relativePoses[i].trans());
|
glm::vec3 currentRelTrans = _sendNetworkNode ? _networkPoseSet._relativePoses[i].trans() : _internalPoseSet._relativePoses[i].trans();
|
||||||
data.translationIsDefaultPose = isEqual(data.translation, defaultRelTrans);
|
data.translation = geometryToRigScale * currentRelTrans;
|
||||||
|
data.translationIsDefaultPose = isEqual(currentRelTrans, defaultRelTrans);
|
||||||
} else {
|
} else {
|
||||||
data.translationIsDefaultPose = true;
|
data.translationIsDefaultPose = true;
|
||||||
data.rotationIsDefaultPose = true;
|
data.rotationIsDefaultPose = true;
|
||||||
|
@ -2012,6 +2014,8 @@ void Rig::copyJointsFromJointData(const QVector<JointData>& jointDataVec) {
|
||||||
std::vector<glm::quat> rotations;
|
std::vector<glm::quat> rotations;
|
||||||
rotations.reserve(numJoints);
|
rotations.reserve(numJoints);
|
||||||
const glm::quat rigToGeometryRot(glmExtractRotation(_rigToGeometryTransform));
|
const glm::quat rigToGeometryRot(glmExtractRotation(_rigToGeometryTransform));
|
||||||
|
const glm::vec3 rigToGeometryScale(extractScale(_rigToGeometryTransform));
|
||||||
|
|
||||||
for (int i = 0; i < numJoints; i++) {
|
for (int i = 0; i < numJoints; i++) {
|
||||||
const JointData& data = jointDataVec.at(i);
|
const JointData& data = jointDataVec.at(i);
|
||||||
if (data.rotationIsDefaultPose) {
|
if (data.rotationIsDefaultPose) {
|
||||||
|
@ -2037,7 +2041,7 @@ void Rig::copyJointsFromJointData(const QVector<JointData>& jointDataVec) {
|
||||||
_internalPoseSet._relativePoses[i].trans() = relativeDefaultPoses[i].trans();
|
_internalPoseSet._relativePoses[i].trans() = relativeDefaultPoses[i].trans();
|
||||||
} else {
|
} else {
|
||||||
// JointData translations are in scaled relative-frame so we scale back to regular relative-frame
|
// JointData translations are in scaled relative-frame so we scale back to regular relative-frame
|
||||||
_internalPoseSet._relativePoses[i].trans() = _invGeometryOffset.scale() * data.translation;
|
_internalPoseSet._relativePoses[i].trans() = rigToGeometryScale * data.translation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ PacketVersion versionForPacketType(PacketType packetType) {
|
||||||
case PacketType::AvatarData:
|
case PacketType::AvatarData:
|
||||||
case PacketType::BulkAvatarData:
|
case PacketType::BulkAvatarData:
|
||||||
case PacketType::KillAvatar:
|
case PacketType::KillAvatar:
|
||||||
return static_cast<PacketVersion>(AvatarMixerPacketVersion::FarGrabJointsRedux);
|
return static_cast<PacketVersion>(AvatarMixerPacketVersion::JointTransScaled);
|
||||||
case PacketType::MessagesData:
|
case PacketType::MessagesData:
|
||||||
return static_cast<PacketVersion>(MessageDataVersion::TextOrBinaryData);
|
return static_cast<PacketVersion>(MessageDataVersion::TextOrBinaryData);
|
||||||
// ICE packets
|
// ICE packets
|
||||||
|
|
|
@ -296,7 +296,8 @@ enum class AvatarMixerPacketVersion : PacketVersion {
|
||||||
FarGrabJoints,
|
FarGrabJoints,
|
||||||
MigrateSkeletonURLToTraits,
|
MigrateSkeletonURLToTraits,
|
||||||
MigrateAvatarEntitiesToTraits,
|
MigrateAvatarEntitiesToTraits,
|
||||||
FarGrabJointsRedux
|
FarGrabJointsRedux,
|
||||||
|
JointTransScaled
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class DomainConnectRequestVersion : PacketVersion {
|
enum class DomainConnectRequestVersion : PacketVersion {
|
||||||
|
|
Loading…
Reference in a new issue