mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 19:52:26 +02:00
54 lines
1.7 KiB
C++
54 lines
1.7 KiB
C++
//
|
|
// UpdateEntityOperator.h
|
|
// libraries/entities/src
|
|
//
|
|
// Created by Brad Hefta-Gaub on 8/11/2014.
|
|
// Copyright 2014 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
#ifndef hifi_UpdateEntityOperator_h
|
|
#define hifi_UpdateEntityOperator_h
|
|
|
|
#include "EntitiesLogging.h"
|
|
#include "EntityItem.h"
|
|
#include "EntityItemProperties.h"
|
|
#include "EntityTree.h"
|
|
#include "EntityTreeElement.h"
|
|
|
|
class UpdateEntityOperator : public RecurseOctreeOperator {
|
|
public:
|
|
UpdateEntityOperator(EntityTreePointer tree, EntityTreeElementPointer containingElement,
|
|
EntityItemPointer existingEntity, const AACube newQueryAACube);
|
|
|
|
~UpdateEntityOperator();
|
|
|
|
virtual bool preRecursion(const OctreeElementPointer& element) override;
|
|
virtual bool postRecursion(const OctreeElementPointer& element) override;
|
|
virtual OctreeElementPointer possiblyCreateChildAt(const OctreeElementPointer& element, int childIndex) override;
|
|
private:
|
|
EntityTreePointer _tree;
|
|
EntityItemPointer _existingEntity;
|
|
EntityTreeElementPointer _containingElement;
|
|
AACube _containingElementCube; // we temporarily store our cube here in case we need to delete the containing element
|
|
EntityItemID _entityItemID;
|
|
bool _foundOld;
|
|
bool _foundNew;
|
|
bool _removeOld;
|
|
quint64 _changeTime;
|
|
|
|
AACube _oldEntityCube;
|
|
AACube _newEntityCube;
|
|
|
|
AABox _oldEntityBox; // clamped to domain
|
|
AABox _newEntityBox; // clamped to domain
|
|
|
|
bool subTreeContainsOldEntity(const OctreeElementPointer& element);
|
|
bool subTreeContainsNewEntity(const OctreeElementPointer& element);
|
|
|
|
bool _wantDebug;
|
|
};
|
|
|
|
#endif // hifi_UpdateEntityOperator_h
|