mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 14:09:01 +02:00
Merge branch 'fade' into fadeshape
This commit is contained in:
commit
d055b1aa8e
1 changed files with 4 additions and 7 deletions
|
@ -273,19 +273,15 @@ void AvatarManager::simulateAvatarFades(float deltaTime) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const float SHRINK_RATE = 0.15f;
|
|
||||||
const float MIN_FADE_SCALE = MIN_AVATAR_SCALE;
|
|
||||||
|
|
||||||
QReadLocker locker(&_hashLock);
|
QReadLocker locker(&_hashLock);
|
||||||
QVector<AvatarSharedPointer>::iterator avatarItr = _avatarsToFade.begin();
|
QVector<AvatarSharedPointer>::iterator avatarItr = _avatarsToFade.begin();
|
||||||
|
const render::ScenePointer& scene = qApp->getMain3DScene();
|
||||||
while (avatarItr != _avatarsToFade.end()) {
|
while (avatarItr != _avatarsToFade.end()) {
|
||||||
auto avatar = std::static_pointer_cast<Avatar>(*avatarItr);
|
auto avatar = std::static_pointer_cast<Avatar>(*avatarItr);
|
||||||
avatar->setTargetScale(avatar->getUniformScale() * SHRINK_RATE);
|
avatar->updateFadingStatus(scene);
|
||||||
avatar->animateScaleChanges(deltaTime);
|
if (!avatar->isFading()) {
|
||||||
if (avatar->getTargetScale() <= MIN_FADE_SCALE) {
|
|
||||||
// fading to zero is such a rare event we push a unique transaction for each
|
// fading to zero is such a rare event we push a unique transaction for each
|
||||||
if (avatar->isInScene()) {
|
if (avatar->isInScene()) {
|
||||||
const render::ScenePointer& scene = qApp->getMain3DScene();
|
|
||||||
render::Transaction transaction;
|
render::Transaction transaction;
|
||||||
avatar->removeFromScene(*avatarItr, scene, transaction);
|
avatar->removeFromScene(*avatarItr, scene, transaction);
|
||||||
scene->enqueueTransaction(transaction);
|
scene->enqueueTransaction(transaction);
|
||||||
|
@ -323,6 +319,7 @@ void AvatarManager::handleRemovedAvatar(const AvatarSharedPointer& removedAvatar
|
||||||
// remove from node sets, if present
|
// remove from node sets, if present
|
||||||
DependencyManager::get<NodeList>()->removeFromIgnoreMuteSets(avatar->getSessionUUID());
|
DependencyManager::get<NodeList>()->removeFromIgnoreMuteSets(avatar->getSessionUUID());
|
||||||
DependencyManager::get<UsersScriptingInterface>()->avatarDisconnected(avatar->getSessionUUID());
|
DependencyManager::get<UsersScriptingInterface>()->avatarDisconnected(avatar->getSessionUUID());
|
||||||
|
avatar->fadeOut(qApp->getMain3DScene(), removalReason);
|
||||||
}
|
}
|
||||||
_avatarsToFade.push_back(removedAvatar);
|
_avatarsToFade.push_back(removedAvatar);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue