diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index b70c021f61..ab7647b9fc 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -592,16 +592,6 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { // joint rotations int numJoints = *sourceBuffer++; - // do not process any jointData until we've received a valid jointIndices hash from - // an earlier AvatarIdentity packet. Because if we do, we risk applying the joint data - // the wrong bones, resulting in a twisted avatar, An un-animated avatar is preferable to this. - bool skipJoints = false; -#ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - if (_networkJointIndexMap.empty()) { - skipJoints = true; - } -#endif - int bytesOfValidity = (int)ceil((float)numJoints / (float)BITS_IN_BYTE); minPossibleSize += bytesOfValidity; if (minPossibleSize > maxAvailableSize) { @@ -653,13 +643,9 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { for (int i = 0; i < numJoints; i++) { JointData& data = _jointData[i]; if (validRotations[i]) { - if (skipJoints) { - sourceBuffer += COMPRESSED_QUATERNION_SIZE; - } else { - sourceBuffer += unpackOrientationQuatFromSixBytes(sourceBuffer, data.rotation); - _hasNewJointRotations = true; - data.rotationSet = true; - } + sourceBuffer += unpackOrientationQuatFromSixBytes(sourceBuffer, data.rotation); + _hasNewJointRotations = true; + data.rotationSet = true; } } } // numJoints * 6 bytes @@ -705,13 +691,9 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) { for (int i = 0; i < numJoints; i++) { JointData& data = _jointData[i]; if (validTranslations[i]) { - if (skipJoints) { - sourceBuffer += COMPRESSED_TRANSLATION_SIZE; - } else { - sourceBuffer += unpackFloatVec3FromSignedTwoByteFixed(sourceBuffer, data.translation, TRANSLATION_COMPRESSION_RADIX); - _hasNewJointTranslations = true; - data.translationSet = true; - } + sourceBuffer += unpackFloatVec3FromSignedTwoByteFixed(sourceBuffer, data.translation, TRANSLATION_COMPRESSION_RADIX); + _hasNewJointTranslations = true; + data.translationSet = true; } } } // numJoints * 6 bytes @@ -971,32 +953,13 @@ void AvatarData::clearJointsData() { void AvatarData::parseAvatarIdentityPacket(const QByteArray& data, Identity& identityOut) { QDataStream packetStream(data); -#ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - packetStream >> identityOut.uuid >> identityOut.skeletonModelURL >> identityOut.attachmentData >> identityOut.displayName >> identityOut.jointIndices; -#else packetStream >> identityOut.uuid >> identityOut.skeletonModelURL >> identityOut.attachmentData >> identityOut.displayName; -#endif } bool AvatarData::processAvatarIdentity(const Identity& identity) { bool hasIdentityChanged = false; - #ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - if (!_jointIndices.empty() && _networkJointIndexMap.empty() && !identity.jointIndices.empty()) { - - // build networkJointIndexMap from _jointIndices and networkJointIndices. - _networkJointIndexMap.fill(-1, identity.jointIndices.size()); - for (auto iter = identity.jointIndices.cbegin(); iter != identity.jointIndices.end(); ++iter) { - int jointIndex = getJointIndex(iter.key()); - int networkJointIndex = iter.value(); - if (networkJointIndex >= 0 && networkJointIndex < identity.jointIndices.size()) { - _networkJointIndexMap[networkJointIndex - 1] = jointIndex; - } - } - } -#endif - if (_firstSkeletonCheck || (identity.skeletonModelURL != _skeletonModelURL)) { setSkeletonModelURL(identity.skeletonModelURL); hasIdentityChanged = true; @@ -1021,12 +984,7 @@ QByteArray AvatarData::identityByteArray() { QDataStream identityStream(&identityData, QIODevice::Append); QUrl emptyURL(""); const QUrl& urlToSend = _skeletonModelURL.scheme() == "file" ? emptyURL : _skeletonModelURL; - -#ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - identityStream << getSessionUUID() << urlToSend << _attachmentData << _displayName << _jointIndices; -#else identityStream << getSessionUUID() << urlToSend << _attachmentData << _displayName; -#endif return identityData; } @@ -1205,10 +1163,6 @@ void AvatarData::updateJointMappings() { _jointIndices.clear(); _jointNames.clear(); -#ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - _networkJointIndexMap.clear(); -#endif - if (_skeletonModelURL.fileName().toLower().endsWith(".fst")) { QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); QNetworkRequest networkRequest = QNetworkRequest(_skeletonModelURL); diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h index 1a1a07410d..817d8aef09 100644 --- a/libraries/avatars/src/AvatarData.h +++ b/libraries/avatars/src/AvatarData.h @@ -128,8 +128,6 @@ enum KeyState { DELETE_KEY_DOWN }; -#define TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - class QDataStream; class AttachmentData; @@ -287,9 +285,6 @@ public: QUrl skeletonModelURL; QVector attachmentData; QString displayName; -#ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - QHash jointIndices; -#endif }; static void parseAvatarIdentityPacket(const QByteArray& data, Identity& identityOut); @@ -382,9 +377,6 @@ protected: float _displayNameAlpha; QHash _jointIndices; ///< 1-based, since zero is returned for missing keys -#ifdef TRANSMIT_JOINT_INDICES_IN_IDENTITY_PACKET - QVector _networkJointIndexMap; // maps network joint indices to local model joint indices. -#endif QStringList _jointNames; ///< in order of depth-first traversal quint64 _errorLogExpiry; ///< time in future when to log an error