From 058bba7b55941e9f0f1b00789ddd5ab2269a13d3 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 3 Feb 2016 17:13:35 -0800 Subject: [PATCH 1/2] move avatar invokables from AvatarManager to AvatarHashMap --- interface/src/avatar/AvatarManager.cpp | 11 ----------- interface/src/avatar/AvatarManager.h | 5 +---- libraries/avatars/src/AvatarHashMap.cpp | 10 ++++++++++ libraries/avatars/src/AvatarHashMap.h | 6 ++++++ 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index 833ed26cc9..e12ff8f857 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -268,17 +268,6 @@ QVector AvatarManager::getLocalLights() const { return _localLights; } -QVector AvatarManager::getAvatarIdentifiers() { - QReadLocker locker(&_hashLock); - return _avatarHash.keys().toVector(); -} - -AvatarData* AvatarManager::getAvatar(QUuid avatarID) { - // Null/Default-constructed QUuids will return MyAvatar - return getAvatarBySessionID(avatarID).get(); -} - - void AvatarManager::getObjectsToRemoveFromPhysics(VectorOfMotionStates& result) { result.clear(); result.swap(_motionStatesToRemoveFromPhysics); diff --git a/interface/src/avatar/AvatarManager.h b/interface/src/avatar/AvatarManager.h index 72fcb3f862..2aff98a1d2 100644 --- a/interface/src/avatar/AvatarManager.h +++ b/interface/src/avatar/AvatarManager.h @@ -39,7 +39,7 @@ public: void init(); MyAvatar* getMyAvatar() { return _myAvatar.get(); } - AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID); + AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) override; void updateMyAvatar(float deltaTime); void updateOtherAvatars(float deltaTime); @@ -56,9 +56,6 @@ public: Q_INVOKABLE void setLocalLights(const QVector& localLights); Q_INVOKABLE QVector getLocalLights() const; - // Currently, your own avatar will be included as the null avatar id. - Q_INVOKABLE QVector getAvatarIdentifiers(); - Q_INVOKABLE AvatarData* getAvatar(QUuid avatarID); void getObjectsToRemoveFromPhysics(VectorOfMotionStates& motionStates); diff --git a/libraries/avatars/src/AvatarHashMap.cpp b/libraries/avatars/src/AvatarHashMap.cpp index 845a6a6245..ef7ff9684a 100644 --- a/libraries/avatars/src/AvatarHashMap.cpp +++ b/libraries/avatars/src/AvatarHashMap.cpp @@ -22,6 +22,16 @@ AvatarHashMap::AvatarHashMap() { connect(DependencyManager::get().data(), &NodeList::uuidChanged, this, &AvatarHashMap::sessionUUIDChanged); } +QVector AvatarHashMap::getAvatarIdentifiers() { + QReadLocker locker(&_hashLock); + return _avatarHash.keys().toVector(); +} + +AvatarData* AvatarHashMap::getAvatar(QUuid avatarID) { + // Null/Default-constructed QUuids will return MyAvatar + return getAvatarBySessionID(avatarID).get(); +} + bool AvatarHashMap::isAvatarInRange(const glm::vec3& position, const float range) { auto hashCopy = getHashCopy(); foreach(const AvatarSharedPointer& sharedAvatar, hashCopy) { diff --git a/libraries/avatars/src/AvatarHashMap.h b/libraries/avatars/src/AvatarHashMap.h index cb6c6cb0cc..0949b3ccea 100644 --- a/libraries/avatars/src/AvatarHashMap.h +++ b/libraries/avatars/src/AvatarHashMap.h @@ -34,6 +34,12 @@ public: AvatarHash getHashCopy() { QReadLocker lock(&_hashLock); return _avatarHash; } int size() { return _avatarHash.size(); } + // Currently, your own avatar will be included as the null avatar id. + Q_INVOKABLE QVector getAvatarIdentifiers(); + Q_INVOKABLE AvatarData* getAvatar(QUuid avatarID); + + AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) { return findAvatar(sessionID); } + signals: void avatarAddedEvent(const QUuid& sessionUUID); void avatarRemovedEvent(const QUuid& sessionUUID); From 816fe52c5b1c38a8c9d7aadfe38e6287b6e65faf Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 3 Feb 2016 17:31:38 -0800 Subject: [PATCH 2/2] mark getAvatarBySessionID as virtual --- libraries/avatars/src/AvatarHashMap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/avatars/src/AvatarHashMap.h b/libraries/avatars/src/AvatarHashMap.h index 0949b3ccea..ee1197367c 100644 --- a/libraries/avatars/src/AvatarHashMap.h +++ b/libraries/avatars/src/AvatarHashMap.h @@ -38,7 +38,7 @@ public: Q_INVOKABLE QVector getAvatarIdentifiers(); Q_INVOKABLE AvatarData* getAvatar(QUuid avatarID); - AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) { return findAvatar(sessionID); } + virtual AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) { return findAvatar(sessionID); } signals: void avatarAddedEvent(const QUuid& sessionUUID);