Overte C++ Documentation
EntityEditPacketSender.h
1 //
2 // EntityEditPacketSender.h
3 // libraries/entities/src
4 //
5 // Created by Brad Hefta-Gaub on 8/12/13.
6 // Copyright 2013 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef hifi_EntityEditPacketSender_h
13 #define hifi_EntityEditPacketSender_h
14 
15 #include <QtCore/QSharedPointer>
16 
17 #include <OctreeEditPacketSender.h>
18 
19 #include <mutex>
20 
21 #include "EntityItem.h"
22 #include "AvatarData.h"
23 
26  Q_OBJECT
27 public:
29 
30  void setMyAvatar(AvatarData* myAvatar) { _myAvatar = myAvatar; }
31  AvatarData* getMyAvatar() { return _myAvatar; }
32 
37  void queueEditEntityMessage(PacketType type, EntityTreePointer entityTree,
38  EntityItemID entityItemID, const EntityItemProperties& properties);
39 
40 
41  void queueEraseEntityMessage(const EntityItemID& entityItemID);
42  void queueCloneEntityMessage(const EntityItemID& entityIDToClone, const EntityItemID& newEntityID);
43 
44  // My server type is the model server
45  virtual char getMyNodeType() const override { return NodeType::EntityServer; }
46  virtual void adjustEditPacketForClockSkew(PacketType type, QByteArray& buffer, qint64 clockSkew) override;
47 
48 public slots:
49  void processEntityEditNackPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer sendingNode);
50 
51 private:
52  friend class MyAvatar;
53  void queueEditAvatarEntityMessage(EntityTreePointer entityTree, EntityItemID entityItemID);
54 
55 private:
56  std::mutex _mutex;
57  AvatarData* _myAvatar { nullptr };
58 };
59 #endif // hifi_EntityEditPacketSender_h
Utility for processing, packing, queueing and sending of outbound edit voxel messages.
Definition: EntityEditPacketSender.h:25
void queueEditEntityMessage(PacketType type, EntityTreePointer entityTree, EntityItemID entityItemID, const EntityItemProperties &properties)
Definition: EntityEditPacketSender.cpp:70
Abstract ID for editing model items. Used in EntityItem JS API.
Definition: EntityItemID.h:28
Definition: EntityItemProperties.h:106
Utility for processing, packing, queueing and sending of outbound edit messages.
Definition: OctreeEditPacketSender.h:23