From 4b8545e8b5c35793fcdef6627b0b66795af97d4e Mon Sep 17 00:00:00 2001 From: Olivier Prat Date: Tue, 18 Jul 2017 10:04:08 +0200 Subject: [PATCH] Removed all bubble fade event code on avatar side --- interface/src/avatar/AvatarManager.cpp | 11 +++++++---- libraries/avatars/src/AvatarHashMap.cpp | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 961e168fa5..bd545c64e0 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -273,15 +273,19 @@ void AvatarManager::simulateAvatarFades(float deltaTime) { return; } + const float SHRINK_RATE = 0.15f; + const float MIN_FADE_SCALE = MIN_AVATAR_SCALE; + QReadLocker locker(&_hashLock); QVector::iterator avatarItr = _avatarsToFade.begin(); - const render::ScenePointer& scene = qApp->getMain3DScene(); while (avatarItr != _avatarsToFade.end()) { auto avatar = std::static_pointer_cast(*avatarItr); - avatar->updateFadingStatus(scene); - if (!avatar->isFading()) { + avatar->setTargetScale(avatar->getUniformScale() * SHRINK_RATE); + avatar->animateScaleChanges(deltaTime); + if (avatar->getTargetScale() <= MIN_FADE_SCALE) { // fading to zero is such a rare event we push a unique transaction for each if (avatar->isInScene()) { + const render::ScenePointer& scene = qApp->getMain3DScene(); render::Transaction transaction; avatar->removeFromScene(*avatarItr, scene, transaction); scene->enqueueTransaction(transaction); @@ -321,7 +325,6 @@ void AvatarManager::handleRemovedAvatar(const AvatarSharedPointer& removedAvatar DependencyManager::get()->avatarDisconnected(avatar->getSessionUUID()); } _avatarsToFade.push_back(removedAvatar); - avatar->fadeOut(qApp->getMain3DScene(), removalReason); } void AvatarManager::clearOtherAvatars() { diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index 540fd583c8..3712080cdb 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -173,7 +173,7 @@ void AvatarHashMap::processKillAvatar(QSharedPointer message, S void AvatarHashMap::removeAvatar(const QUuid& sessionUUID, KillAvatarReason removalReason) { QWriteLocker locker(&_hashLock); - AvatarSharedPointer removedAvatar = _avatarHash.take(sessionUUID); + auto removedAvatar = _avatarHash.take(sessionUUID); if (removedAvatar) { handleRemovedAvatar(removedAvatar, removalReason);