mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 17:29:47 +02:00
Merge pull request #7027 from birarda/avatars-property
move two AvatarList invokable methods from AvatarManager to AvatarHashMap
This commit is contained in:
commit
294a7ee9ad
4 changed files with 17 additions and 15 deletions
|
@ -268,17 +268,6 @@ QVector<AvatarManager::LocalLight> AvatarManager::getLocalLights() const {
|
||||||
return _localLights;
|
return _localLights;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QUuid> 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) {
|
void AvatarManager::getObjectsToRemoveFromPhysics(VectorOfMotionStates& result) {
|
||||||
result.clear();
|
result.clear();
|
||||||
result.swap(_motionStatesToRemoveFromPhysics);
|
result.swap(_motionStatesToRemoveFromPhysics);
|
||||||
|
|
|
@ -39,7 +39,7 @@ public:
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
MyAvatar* getMyAvatar() { return _myAvatar.get(); }
|
MyAvatar* getMyAvatar() { return _myAvatar.get(); }
|
||||||
AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID);
|
AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) override;
|
||||||
|
|
||||||
void updateMyAvatar(float deltaTime);
|
void updateMyAvatar(float deltaTime);
|
||||||
void updateOtherAvatars(float deltaTime);
|
void updateOtherAvatars(float deltaTime);
|
||||||
|
@ -56,9 +56,6 @@ public:
|
||||||
|
|
||||||
Q_INVOKABLE void setLocalLights(const QVector<AvatarManager::LocalLight>& localLights);
|
Q_INVOKABLE void setLocalLights(const QVector<AvatarManager::LocalLight>& localLights);
|
||||||
Q_INVOKABLE QVector<AvatarManager::LocalLight> getLocalLights() const;
|
Q_INVOKABLE QVector<AvatarManager::LocalLight> getLocalLights() const;
|
||||||
// Currently, your own avatar will be included as the null avatar id.
|
|
||||||
Q_INVOKABLE QVector<QUuid> getAvatarIdentifiers();
|
|
||||||
Q_INVOKABLE AvatarData* getAvatar(QUuid avatarID);
|
|
||||||
|
|
||||||
|
|
||||||
void getObjectsToRemoveFromPhysics(VectorOfMotionStates& motionStates);
|
void getObjectsToRemoveFromPhysics(VectorOfMotionStates& motionStates);
|
||||||
|
|
|
@ -22,6 +22,16 @@ AvatarHashMap::AvatarHashMap() {
|
||||||
connect(DependencyManager::get<NodeList>().data(), &NodeList::uuidChanged, this, &AvatarHashMap::sessionUUIDChanged);
|
connect(DependencyManager::get<NodeList>().data(), &NodeList::uuidChanged, this, &AvatarHashMap::sessionUUIDChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVector<QUuid> 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) {
|
bool AvatarHashMap::isAvatarInRange(const glm::vec3& position, const float range) {
|
||||||
auto hashCopy = getHashCopy();
|
auto hashCopy = getHashCopy();
|
||||||
foreach(const AvatarSharedPointer& sharedAvatar, hashCopy) {
|
foreach(const AvatarSharedPointer& sharedAvatar, hashCopy) {
|
||||||
|
|
|
@ -34,6 +34,12 @@ public:
|
||||||
AvatarHash getHashCopy() { QReadLocker lock(&_hashLock); return _avatarHash; }
|
AvatarHash getHashCopy() { QReadLocker lock(&_hashLock); return _avatarHash; }
|
||||||
int size() { return _avatarHash.size(); }
|
int size() { return _avatarHash.size(); }
|
||||||
|
|
||||||
|
// Currently, your own avatar will be included as the null avatar id.
|
||||||
|
Q_INVOKABLE QVector<QUuid> getAvatarIdentifiers();
|
||||||
|
Q_INVOKABLE AvatarData* getAvatar(QUuid avatarID);
|
||||||
|
|
||||||
|
virtual AvatarSharedPointer getAvatarBySessionID(const QUuid& sessionID) { return findAvatar(sessionID); }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void avatarAddedEvent(const QUuid& sessionUUID);
|
void avatarAddedEvent(const QUuid& sessionUUID);
|
||||||
void avatarRemovedEvent(const QUuid& sessionUUID);
|
void avatarRemovedEvent(const QUuid& sessionUUID);
|
||||||
|
|
Loading…
Reference in a new issue