mirror of
https://github.com/overte-org/overte.git
synced 2025-04-19 15:43:50 +02:00
snapshot after using tree from entity item.
This commit is contained in:
parent
db13b15337
commit
b09b9a4a0a
8 changed files with 17 additions and 11 deletions
|
@ -1010,6 +1010,10 @@ EntityTreePointer EntityItem::getTree() const {
|
|||
return tree;
|
||||
}
|
||||
|
||||
SpatialParentTree* EntityItem::getParentTree() const {
|
||||
return getTree().get();
|
||||
}
|
||||
|
||||
bool EntityItem::wantTerseEditLogging() const {
|
||||
EntityTreePointer tree = getTree();
|
||||
return tree ? tree->wantTerseEditLogging() : false;
|
||||
|
|
|
@ -359,6 +359,7 @@ public:
|
|||
void setPhysicsInfo(void* data) { _physicsInfo = data; }
|
||||
EntityTreeElementPointer getElement() const { return _element; }
|
||||
EntityTreePointer getTree() const;
|
||||
virtual SpatialParentTree* getParentTree() const;
|
||||
bool wantTerseEditLogging() const;
|
||||
|
||||
glm::mat4 getEntityToWorldMatrix() const;
|
||||
|
|
|
@ -90,7 +90,7 @@ void EntityTree::postAddEntity(EntityItemPointer entity) {
|
|||
_simulation->addEntity(entity);
|
||||
}
|
||||
|
||||
if (!entity->isParentIDValid(this)) {
|
||||
if (!entity->isParentIDValid()) {
|
||||
_missingParent.append(entity);
|
||||
}
|
||||
|
||||
|
@ -260,7 +260,7 @@ bool EntityTree::updateEntityWithElement(EntityItemPointer entity, const EntityI
|
|||
_missingParent.append(childEntity);
|
||||
continue;
|
||||
}
|
||||
if (!childEntity->isParentIDValid(this)) {
|
||||
if (!childEntity->isParentIDValid()) {
|
||||
_missingParent.append(childEntity);
|
||||
}
|
||||
|
||||
|
@ -1027,7 +1027,7 @@ void EntityTree::fixupMissingParents() {
|
|||
}
|
||||
|
||||
bool doMove = false;
|
||||
if (entity->isParentIDValid(this)) {
|
||||
if (entity->isParentIDValid()) {
|
||||
qCDebug(entities) << "HRS fixme valid parent" << entity->getEntityItemID() << queryAACubeSuccess;
|
||||
// this entity's parent was previously not known, and now is. Update its location in the EntityTree...
|
||||
doMove = true;
|
||||
|
@ -1040,7 +1040,7 @@ void EntityTree::fixupMissingParents() {
|
|||
_childrenOfAvatars[entity->getParentID()] += entity->getEntityItemID();
|
||||
doMove = true;
|
||||
}
|
||||
else qCDebug(entities) << "HRS fixme failed parent" << entity->getEntityItemID() << queryAACubeSuccess;
|
||||
else qCDebug(entities) << "HRS fixme failed parent" << entity->getEntityItemID() << queryAACubeSuccess << "parent:" << entity->getParentID() << !!findEntityByID(entity->getParentID());
|
||||
|
||||
if (queryAACubeSuccess && doMove) {
|
||||
moveOperator.addEntityToMoveList(entity, newCube);
|
||||
|
|
|
@ -126,7 +126,7 @@ public:
|
|||
EntityItemPointer findClosestEntity(glm::vec3 position, float targetRadius);
|
||||
EntityItemPointer findEntityByID(const QUuid& id);
|
||||
EntityItemPointer findEntityByEntityItemID(const EntityItemID& entityID);
|
||||
SpatiallyNestablePointer EntityTree::findByID(const QUuid& id) { return findEntityByID(id); }
|
||||
virtual SpatiallyNestablePointer findByID(const QUuid& id) { return findEntityByID(id); }
|
||||
|
||||
EntityItemID assignEntityID(const EntityItemID& entityItemID); /// Assigns a known ID for a creator token ID
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ bool RecurseOctreeToMapOperator::postRecursion(OctreeElementPointer element) {
|
|||
QVariantList entitiesQList = qvariant_cast<QVariantList>(_map["Entities"]);
|
||||
|
||||
entityTreeElement->forEachEntity([&](EntityItemPointer entityItem) {
|
||||
if (_skipThoseWithBadParents && !entityItem->isParentIDValid(_entityTree)) {
|
||||
if (_skipThoseWithBadParents && !entityItem->isParentIDValid()) {
|
||||
return; // we weren't able to resolve a parent from _parentID, so don't save this entity.
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ using SpatiallyNestableWeakPointer = std::weak_ptr<SpatiallyNestable>;
|
|||
using SpatiallyNestablePointer = std::shared_ptr<SpatiallyNestable>;
|
||||
class SpatialParentTree {
|
||||
public:
|
||||
SpatiallyNestablePointer findByID(const QUuid& id) { return nullptr; }
|
||||
virtual SpatiallyNestablePointer findByID(const QUuid& id) { return nullptr; }
|
||||
};
|
||||
class SpatialParentFinder : public Dependency {
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ Transform SpatiallyNestable::getParentTransform(bool& success, int depth) const
|
|||
return result;
|
||||
}
|
||||
|
||||
SpatiallyNestablePointer SpatiallyNestable::getParentPointer(bool& success, SpatialParentTree* entityTree) const {
|
||||
SpatiallyNestablePointer SpatiallyNestable::getParentPointer(bool& success) const {
|
||||
SpatiallyNestablePointer parent = _parent.lock();
|
||||
QUuid parentID = getParentID(); // used for its locking
|
||||
|
||||
|
@ -105,7 +105,7 @@ SpatiallyNestablePointer SpatiallyNestable::getParentPointer(bool& success, Spat
|
|||
success = false;
|
||||
return nullptr;
|
||||
}
|
||||
_parent = parentFinder->find(parentID, success, entityTree);
|
||||
_parent = parentFinder->find(parentID, success, getParentTree());
|
||||
if (!success) {
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -139,14 +139,15 @@ public:
|
|||
void die() { _isDead = true; }
|
||||
bool isDead() const { return _isDead; }
|
||||
|
||||
bool isParentIDValid(SpatialParentTree* entityTree = nullptr) const { bool success = false; getParentPointer(success, entityTree); return success; }
|
||||
bool isParentIDValid() const { bool success = false; getParentPointer(success); return success; }
|
||||
virtual SpatialParentTree* getParentTree() const { return nullptr; }
|
||||
|
||||
protected:
|
||||
const NestableType _nestableType; // EntityItem or an AvatarData
|
||||
QUuid _id;
|
||||
QUuid _parentID; // what is this thing's transform relative to?
|
||||
quint16 _parentJointIndex { 0 }; // which joint of the parent is this relative to?
|
||||
SpatiallyNestablePointer getParentPointer(bool& success, SpatialParentTree* entityTree = nullptr) const;
|
||||
SpatiallyNestablePointer getParentPointer(bool& success) const;
|
||||
|
||||
mutable SpatiallyNestableWeakPointer _parent;
|
||||
|
||||
|
|
Loading…
Reference in a new issue