diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp index fceb146470..99eb08949b 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp @@ -1894,6 +1894,34 @@ QList Avatar::getSkeleton() { return QList(); } +void Avatar::updateJointMappings() { + { + QWriteLocker writeLock(&_jointDataLock); + _fstJointIndices.clear(); + _fstJointNames.clear(); + _jointData.clear(); + } + + //if (_skeletonModelURL.fileName().toLower().endsWith(".fst")) { + // //// + // // TODO: Should we rely upon HTTPResourceRequest for ResourceRequestObserver instead? + // // HTTPResourceRequest::doSend() covers all of the following and + // // then some. It doesn't cover the connect() call, so we may + // // want to add a HTTPResourceRequest::doSend() method that does + // // connects. + // QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); + // QNetworkRequest networkRequest = QNetworkRequest(_skeletonModelURL); + // networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); + // networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); + // DependencyManager::get()->update( + // _skeletonModelURL, -1, "AvatarData::updateJointMappings"); + // QNetworkReply* networkReply = networkAccessManager.get(networkRequest); + // // + // //// + // connect(networkReply, &QNetworkReply::finished, this, &AvatarData::setJointMappingsFromNetworkReply); + //} +} + void Avatar::addToScene(AvatarSharedPointer myHandle, const render::ScenePointer& scene) { if (scene) { auto nodelist = DependencyManager::get(); diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h index 8f70b12122..d577ab35bf 100644 --- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h +++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h @@ -516,6 +516,9 @@ protected: mutable QReadWriteLock _modelJointIndicesCacheLock; mutable bool _modelJointsCached { false }; + /// Loads the joint indices, names from the FST file (if any) + virtual void updateJointMappings() override; + glm::vec3 _skeletonOffset; std::vector> _attachmentModels; std::vector _attachmentModelsTexturesLoaded; diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index d9d4b57c31..a369ea9a24 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -2209,33 +2209,8 @@ void AvatarData::sendIdentityPacket() { _identityDataChanged = false; } -void AvatarData::updateJointMappings() { - { - QWriteLocker writeLock(&_jointDataLock); - _fstJointIndices.clear(); - _fstJointNames.clear(); - _jointData.clear(); - } - - if (_skeletonModelURL.fileName().toLower().endsWith(".fst")) { - //// - // TODO: Should we rely upon HTTPResourceRequest for ResourceRequestObserver instead? - // HTTPResourceRequest::doSend() covers all of the following and - // then some. It doesn't cover the connect() call, so we may - // want to add a HTTPResourceRequest::doSend() method that does - // connects. - QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); - QNetworkRequest networkRequest = QNetworkRequest(_skeletonModelURL); - networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); - networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); - DependencyManager::get()->update( - _skeletonModelURL, -1, "AvatarData::updateJointMappings"); - QNetworkReply* networkReply = networkAccessManager.get(networkRequest); - // - //// - connect(networkReply, &QNetworkReply::finished, this, &AvatarData::setJointMappingsFromNetworkReply); - } -} +void AvatarData::updateJointMappings() +{ } static const QString JSON_ATTACHMENT_URL = QStringLiteral("modelUrl"); static const QString JSON_ATTACHMENT_JOINT_NAME = QStringLiteral("jointName");