From 2bba6aa8160fa05ece863b6b5ececda6fcc144ec Mon Sep 17 00:00:00 2001 From: Olivier Prat Date: Tue, 18 Jul 2017 14:07:07 +0200 Subject: [PATCH] Revert "Removed all bubble fade event code on avatar side" This reverts commit 4b8545e8b5c35793fcdef6627b0b66795af97d4e. --- interface/src/avatar/AvatarManager.cpp | 11 ++++------- libraries/avatars/src/AvatarHashMap.cpp | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index bd545c64e0..961e168fa5 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -273,19 +273,15 @@ 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->setTargetScale(avatar->getUniformScale() * SHRINK_RATE); - avatar->animateScaleChanges(deltaTime); - if (avatar->getTargetScale() <= MIN_FADE_SCALE) { + avatar->updateFadingStatus(scene); + if (!avatar->isFading()) { // 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); @@ -325,6 +321,7 @@ 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 3712080cdb..540fd583c8 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); - auto removedAvatar = _avatarHash.take(sessionUUID); + AvatarSharedPointer removedAvatar = _avatarHash.take(sessionUUID); if (removedAvatar) { handleRemovedAvatar(removedAvatar, removalReason);