12 #ifndef hifi_EntityNodeData_h
13 #define hifi_EntityNodeData_h
15 #include <udt/PacketHeaders.h>
17 #include <OctreeQueryNode.h>
19 namespace EntityJSONQueryProperties {
20 static const QString SERVER_SCRIPTS_PROPERTY =
"serverScripts";
21 static const QString FLAGS_PROPERTY =
"flags";
22 static const QString INCLUDE_ANCESTORS_PROPERTY =
"includeAncestors";
23 static const QString INCLUDE_DESCENDANTS_PROPERTY =
"includeDescendants";
26 class EntityNodeData :
public OctreeQueryNode {
28 virtual PacketType getMyPacketType()
const override {
return PacketType::EntityData; }
30 quint64 getLastDeletedEntitiesSentAt()
const {
return _lastDeletedEntitiesSentAt; }
31 void setLastDeletedEntitiesSentAt(quint64 sentAt) { _lastDeletedEntitiesSentAt = sentAt; }
34 void insertSentFilteredEntity(
const QUuid& entityID) { _sentFilteredEntities.insert(entityID); }
35 void removeSentFilteredEntity(
const QUuid& entityID) { _sentFilteredEntities.remove(entityID); }
36 bool sentFilteredEntity(
const QUuid& entityID)
const {
return _sentFilteredEntities.contains(entityID); }
37 QSet<QUuid> getSentFilteredEntities() {
return _sentFilteredEntities; }
42 bool insertFlaggedExtraEntity(
const QUuid& filteredEntityID,
const QUuid& extraEntityID);
44 bool isEntityFlaggedAsExtra(
const QUuid& entityID)
const;
45 void resetFlaggedExtraEntities() { _previousFlaggedExtraEntities = _flaggedExtraEntities; _flaggedExtraEntities.clear(); }
48 quint64 _lastDeletedEntitiesSentAt { usecTimestampNow() };
49 QSet<QUuid> _sentFilteredEntities;
50 QHash<QUuid, QSet<QUuid>> _flaggedExtraEntities;
51 QHash<QUuid, QSet<QUuid>> _previousFlaggedExtraEntities;