mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 08:21:24 +02:00
More shared pointer tweaks
This commit is contained in:
parent
861d1e26a9
commit
402ed4fb76
1 changed files with 7 additions and 5 deletions
|
@ -288,7 +288,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
|
|
||||||
// setup list of AvatarData as well as maps to map betweeen the AvatarData and the original nodes
|
// setup list of AvatarData as well as maps to map betweeen the AvatarData and the original nodes
|
||||||
std::vector<AvatarData*> avatarsToSort;
|
std::vector<AvatarData*> avatarsToSort;
|
||||||
std::unordered_map<const AvatarData*, SharedNodePointer> avatarDataToNodes;
|
std::unordered_map<const AvatarData*, Node*> avatarDataToNodes;
|
||||||
|
std::unordered_map<const AvatarData*, SharedNodePointer> avatarDataToNodesShared;
|
||||||
std::unordered_map<QUuid, uint64_t> avatarEncodeTimes;
|
std::unordered_map<QUuid, uint64_t> avatarEncodeTimes;
|
||||||
std::for_each(_begin, _end, [&](const SharedNodePointer& otherNode) {
|
std::for_each(_begin, _end, [&](const SharedNodePointer& otherNode) {
|
||||||
// make sure this is an agent that we have avatar data for before considering it for inclusion
|
// make sure this is an agent that we have avatar data for before considering it for inclusion
|
||||||
|
@ -298,7 +299,8 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
|
|
||||||
AvatarData* otherAvatar = otherNodeData->getAvatarSharedPointer().get();
|
AvatarData* otherAvatar = otherNodeData->getAvatarSharedPointer().get();
|
||||||
avatarsToSort.push_back(otherAvatar);
|
avatarsToSort.push_back(otherAvatar);
|
||||||
avatarDataToNodes[otherAvatar] = otherNode;
|
avatarDataToNodes[otherAvatar] = otherNode.data();
|
||||||
|
avatarDataToNodesShared[otherAvatar] = otherNode;
|
||||||
QUuid id = otherAvatar->getSessionUUID();
|
QUuid id = otherAvatar->getSessionUUID();
|
||||||
avatarEncodeTimes[id] = nodeData->getLastOtherAvatarEncodeTime(id);
|
avatarEncodeTimes[id] = nodeData->getLastOtherAvatarEncodeTime(id);
|
||||||
}
|
}
|
||||||
|
@ -332,9 +334,9 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
AvatarData::_avatarSortCoefficientAge);
|
AvatarData::_avatarSortCoefficientAge);
|
||||||
|
|
||||||
// ignore or sort
|
// ignore or sort
|
||||||
const AvatarSharedPointer& thisAvatar = nodeData->getAvatarSharedPointer();
|
const AvatarData* thisAvatar = nodeData->getAvatarSharedPointer().get();
|
||||||
for (const auto avatar : avatarsToSort) {
|
for (const auto avatar : avatarsToSort) {
|
||||||
if (avatar == thisAvatar.get()) {
|
if (avatar == thisAvatar) {
|
||||||
// don't echo updates to self
|
// don't echo updates to self
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -380,7 +382,7 @@ void AvatarMixerSlave::broadcastAvatarDataToAgent(const SharedNodePointer& node)
|
||||||
|
|
||||||
// Perform the collision check between the two bounding boxes
|
// Perform the collision check between the two bounding boxes
|
||||||
if (nodeBox.touches(otherNodeBox)) {
|
if (nodeBox.touches(otherNodeBox)) {
|
||||||
nodeData->ignoreOther(node, avatarNode);
|
nodeData->ignoreOther(node, avatarDataToNodesShared[avatar]);
|
||||||
shouldIgnore = !getsAnyIgnored;
|
shouldIgnore = !getsAnyIgnored;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue