mirror of
https://github.com/overte-org/overte.git
synced 2025-05-03 16:49:31 +02:00
Small fixes for joint logic
This commit is contained in:
parent
2da5338574
commit
5a0de0f103
1 changed files with 23 additions and 27 deletions
|
@ -586,12 +586,10 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent
|
||||||
const JointData& last = lastSentJointData[i];
|
const JointData& last = lastSentJointData[i];
|
||||||
|
|
||||||
if (!data.rotationIsDefaultPose) {
|
if (!data.rotationIsDefaultPose) {
|
||||||
bool mustSend = sendAll || last.rotationIsDefaultPose;
|
|
||||||
if (mustSend || last.rotation != data.rotation) {
|
|
||||||
|
|
||||||
// The dot product for larger rotations is a lower number.
|
// The dot product for larger rotations is a lower number.
|
||||||
// So if the dot() is less than the value, then the rotation is a larger angle of rotation
|
// So if the dot() is less than the value, then the rotation is a larger angle of rotation
|
||||||
if (!cullSmallChanges || fabsf(glm::dot(last.rotation, data.rotation)) < minRotationDOT) {
|
if (sendAll || last.rotationIsDefaultPose || (!cullSmallChanges && last.rotation != data.rotation)
|
||||||
|
|| (cullSmallChanges && glm::dot(last.rotation, data.rotation) < minRotationDOT) ) {
|
||||||
validity |= (1 << validityBit);
|
validity |= (1 << validityBit);
|
||||||
#ifdef WANT_DEBUG
|
#ifdef WANT_DEBUG
|
||||||
rotationSentCount++;
|
rotationSentCount++;
|
||||||
|
@ -604,7 +602,6 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (++validityBit == BITS_IN_BYTE) {
|
if (++validityBit == BITS_IN_BYTE) {
|
||||||
*validityPosition++ = validity;
|
*validityPosition++ = validity;
|
||||||
validityBit = validity = 0;
|
validityBit = validity = 0;
|
||||||
|
@ -634,9 +631,9 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent
|
||||||
const JointData& last = lastSentJointData[i];
|
const JointData& last = lastSentJointData[i];
|
||||||
|
|
||||||
if (!data.translationIsDefaultPose) {
|
if (!data.translationIsDefaultPose) {
|
||||||
bool mustSend = sendAll || last.translationIsDefaultPose;
|
if (sendAll || last.translationIsDefaultPose || (!cullSmallChanges && last.translation != data.translation)
|
||||||
if (mustSend || last.translation != data.translation) {
|
|| (cullSmallChanges && glm::distance(data.translation, lastSentJointData[i].translation) > minTranslation)) {
|
||||||
if (!cullSmallChanges || glm::distance(data.translation, lastSentJointData[i].translation) > minTranslation) {
|
|
||||||
validity |= (1 << validityBit);
|
validity |= (1 << validityBit);
|
||||||
#ifdef WANT_DEBUG
|
#ifdef WANT_DEBUG
|
||||||
translationSentCount++;
|
translationSentCount++;
|
||||||
|
@ -654,7 +651,6 @@ QByteArray AvatarData::toByteArray(AvatarDataDetail dataDetail, quint64 lastSent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (++validityBit == BITS_IN_BYTE) {
|
if (++validityBit == BITS_IN_BYTE) {
|
||||||
*validityPosition++ = validity;
|
*validityPosition++ = validity;
|
||||||
validityBit = validity = 0;
|
validityBit = validity = 0;
|
||||||
|
|
Loading…
Reference in a new issue