diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index 3030f82cf1..a23c1c0972 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -73,14 +73,6 @@ void Agent::readPendingDatagrams() { } } - } else if (datagramPacketType == PacketTypeEntityAddResponse) { - // also give our local entity tree a chance to remap any internal locally created entities - _entityViewer.getTree()->handleAddEntityResponse(receivedPacket); - - // Make sure our Node and NodeList knows we've heard from this node. - SharedNodePointer sourceNode = nodeList->sendingNodeForPacket(receivedPacket); - sourceNode->setLastHeardMicrostamp(usecTimestampNow()); - } else if (datagramPacketType == PacketTypeOctreeStats || datagramPacketType == PacketTypeEntityData || datagramPacketType == PacketTypeEntityErase diff --git a/assignment-client/src/entities/EntityServer.cpp b/assignment-client/src/entities/EntityServer.cpp index 9c57f6c757..b94b4a0c60 100644 --- a/assignment-client/src/entities/EntityServer.cpp +++ b/assignment-client/src/entities/EntityServer.cpp @@ -60,24 +60,6 @@ void EntityServer::beforeRun() { } void EntityServer::entityCreated(const EntityItem& newEntity, const SharedNodePointer& senderNode) { - - unsigned char outputBuffer[MAX_PACKET_SIZE]; - unsigned char* copyAt = outputBuffer; - - auto nodeList = DependencyManager::get(); - - int numBytesPacketHeader = nodeList->populatePacketHeader(reinterpret_cast(outputBuffer), PacketTypeEntityAddResponse); - int packetLength = numBytesPacketHeader; - copyAt += numBytesPacketHeader; - - // encode the entity ID - QUuid entityID = newEntity.getID(); - QByteArray encodedID = entityID.toRfc4122(); - memcpy(copyAt, encodedID.constData(), encodedID.size()); - copyAt += sizeof(entityID); - packetLength += sizeof(entityID); - - nodeList->writeDatagram((char*) outputBuffer, packetLength, senderNode); } diff --git a/interface/src/DatagramProcessor.cpp b/interface/src/DatagramProcessor.cpp index 474aaf24b5..f691527186 100644 --- a/interface/src/DatagramProcessor.cpp +++ b/interface/src/DatagramProcessor.cpp @@ -82,9 +82,6 @@ void DatagramProcessor::processDatagrams() { break; } - case PacketTypeEntityAddResponse: - application->getEntities()->getTree()->handleAddEntityResponse(incomingPacket); - break; case PacketTypeEntityData: case PacketTypeEntityErase: case PacketTypeOctreeStats: diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index 98040ce713..c8b20e92e1 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -840,7 +840,7 @@ RayToEntityIntersectionResult EntityTreeRenderer::findRayIntersectionWorker(cons (void**)&intersectedEntity, lockType, &result.accurate, precisionPicking); if (result.intersects && intersectedEntity) { - result.entityID = intersectedEntity->getEntityItemID().id; + result.entityID = intersectedEntity->getEntityItemID(); result.properties = intersectedEntity->getProperties(); result.intersection = ray.origin + (ray.direction * result.distance); result.entity = intersectedEntity; diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 4940095e3e..e8210c7e79 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -30,7 +30,7 @@ bool EntityItem::_sendPhysicsUpdates = true; EntityItem::EntityItem(const EntityItemID& entityItemID) : _type(EntityTypes::Unknown), - _id(entityItemID.id), + _id(entityItemID), _lastSimulated(0), _lastUpdated(0), _lastEdited(0), diff --git a/libraries/entities/src/EntityItemID.cpp b/libraries/entities/src/EntityItemID.cpp index 696924403e..4e66f5d156 100644 --- a/libraries/entities/src/EntityItemID.cpp +++ b/libraries/entities/src/EntityItemID.cpp @@ -18,28 +18,26 @@ #include "EntityItemID.h" -EntityItemID::EntityItemID() : - id(UNKNOWN_ENTITY_ID) -{ -} - - -EntityItemID::EntityItemID(const QUuid& id) : - id(id) -{ -} - -EntityItemID::EntityItemID(const EntityItemID& other) : id(other.id) +EntityItemID::EntityItemID() : QUuid() { } + +EntityItemID::EntityItemID(const QUuid& id) : QUuid(id) +{ +} + +// EntityItemID::EntityItemID(const EntityItemID& other) : QUuid(other) +// { +// } + EntityItemID EntityItemID::readEntityItemIDFromBuffer(const unsigned char* data, int bytesLeftToRead) { EntityItemID result; if (bytesLeftToRead >= NUM_BYTES_RFC4122_UUID) { // id QByteArray encodedID((const char*)data, NUM_BYTES_RFC4122_UUID); - result.id = QUuid::fromRfc4122(encodedID); + result = QUuid::fromRfc4122(encodedID); } return result; } @@ -49,9 +47,9 @@ QScriptValue EntityItemID::toScriptValue(QScriptEngine* engine) const { } QScriptValue EntityItemIDtoScriptValue(QScriptEngine* engine, const EntityItemID& id) { - return quuidToScriptValue(engine, id.id); + return quuidToScriptValue(engine, id); } void EntityItemIDfromScriptValue(const QScriptValue &object, EntityItemID& id) { - quuidFromScriptValue(object, id.id); + quuidFromScriptValue(object, id); } diff --git a/libraries/entities/src/EntityItemID.h b/libraries/entities/src/EntityItemID.h index a8415d4e19..547907625d 100644 --- a/libraries/entities/src/EntityItemID.h +++ b/libraries/entities/src/EntityItemID.h @@ -23,37 +23,37 @@ const QUuid UNKNOWN_ENTITY_ID; // null uuid /// Abstract ID for editing model items. Used in EntityItem JS API. -class EntityItemID { +class EntityItemID : public QUuid { public: EntityItemID(); EntityItemID(const QUuid& id); - EntityItemID(const EntityItemID& other); + // EntityItemID(const EntityItemID& other); static EntityItemID readEntityItemIDFromBuffer(const unsigned char* data, int bytesLeftToRead); QScriptValue toScriptValue(QScriptEngine* engine) const; - bool isInvalidID() const { return id == UNKNOWN_ENTITY_ID; } + bool isInvalidID() const { return *this == UNKNOWN_ENTITY_ID; } - QUuid id; + // QUuid id; }; -inline bool operator<(const EntityItemID& a, const EntityItemID& b) { - return a.id < b.id; -} +// inline bool operator<(const EntityItemID& a, const EntityItemID& b) { +// return a.id < b.id; +// } -inline bool operator==(const EntityItemID& a, const EntityItemID& b) { - return a.id == b.id; -} +// inline bool operator==(const EntityItemID& a, const EntityItemID& b) { +// return a.id == b.id; +// } -inline bool operator!=(const EntityItemID& a, const EntityItemID& b) { - return !(a == b); -} +// inline bool operator!=(const EntityItemID& a, const EntityItemID& b) { +// return !(a == b); +// } -inline uint qHash(const EntityItemID& a, uint seed) { - return qHash(a.id, seed); -} +// inline uint qHash(const EntityItemID& a, uint seed) { +// return qHash(a.id, seed); +// } inline QDebug operator<<(QDebug debug, const EntityItemID& id) { - debug << "[entity-id:" << id.id << "]"; + debug << "[entity-id:" << id.toString() << "]"; return debug; } diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index cf3d3adaa3..5f1d063b36 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -586,7 +586,7 @@ bool EntityItemProperties::encodeEntityEditPacket(PacketType command, EntityItem // id // encode our ID as a byte count coded byte stream - QByteArray encodedID = id.id.toRfc4122(); // NUM_BYTES_RFC4122_UUID + QByteArray encodedID = id.toRfc4122(); // NUM_BYTES_RFC4122_UUID // encode our ID as a byte count coded byte stream ByteCountCoded tokenCoder; @@ -990,7 +990,7 @@ bool EntityItemProperties::encodeEraseEntityMessage(const EntityItemID& entityIt copyAt += sizeof(numberOfIds); outputLength = sizeof(numberOfIds); - QUuid entityID = entityItemID.id; + QUuid entityID = entityItemID; QByteArray encodedEntityID = entityID.toRfc4122(); memcpy(copyAt, encodedEntityID.constData(), NUM_BYTES_RFC4122_UUID); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 2734eddde8..9231867e0e 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -72,7 +72,7 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties EntityItemProperties propertiesWithSimID = properties; - EntityItemID id = EntityItemID(UNKNOWN_ENTITY_ID); + EntityItemID id = EntityItemID(QUuid::createUuid()); // If we have a local entity tree set, then also update it. bool success = true; @@ -95,7 +95,7 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties queueEntityMessage(PacketTypeEntityAddOrEdit, id, propertiesWithSimID); } - return id.id; + return id; } EntityItemProperties EntityScriptingInterface::getEntityProperties(QUuid identity) { @@ -189,7 +189,7 @@ QUuid EntityScriptingInterface::findClosestEntity(const glm::vec3& center, float result = closestEntity->getEntityItemID(); } } - return result.id; + return result; } @@ -210,7 +210,7 @@ QVector EntityScriptingInterface::findEntities(const glm::vec3& center, f _entityTree->unlock(); foreach (const EntityItem* entity, entities) { - result << entity->getEntityItemID().id; + result << entity->getEntityItemID(); } } return result; @@ -226,7 +226,7 @@ QVector EntityScriptingInterface::findEntitiesInBox(const glm::vec3& corn _entityTree->unlock(); foreach (const EntityItem* entity, entities) { - result << entity->getEntityItemID().id; + result << entity->getEntityItemID(); } } return result; @@ -253,7 +253,7 @@ RayToEntityIntersectionResult EntityScriptingInterface::findRayIntersectionWorke (void**)&intersectedEntity, lockType, &result.accurate, precisionPicking); if (result.intersects && intersectedEntity) { - result.entityID = intersectedEntity->getEntityItemID().id; + result.entityID = intersectedEntity->getEntityItemID(); result.properties = intersectedEntity->getProperties(); result.intersection = ray.origin + (ray.direction * result.distance); } diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index dda26079b2..1a8a13e246 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -367,7 +367,7 @@ void EntityTree::processRemovedEntities(const DeleteEntityOperator& theOperator) // set up the deleted entities ID quint64 deletedAt = usecTimestampNow(); _recentlyDeletedEntitiesLock.lockForWrite(); - _recentlyDeletedEntityItemIDs.insert(deletedAt, theEntity->getEntityItemID().id); + _recentlyDeletedEntityItemIDs.insert(deletedAt, theEntity->getEntityItemID()); _recentlyDeletedEntitiesLock.unlock(); } @@ -381,14 +381,6 @@ void EntityTree::processRemovedEntities(const DeleteEntityOperator& theOperator) } } -void EntityTree::handleAddEntityResponse(const QByteArray& packet) { - - if (!getIsClient()) { - qCDebug(entities) << "UNEXPECTED!!! EntityTree::handleAddEntityResponse() with !getIsClient() ***"; - return; - } -} - class FindNearPointArgs { public: diff --git a/libraries/entities/src/EntityTree.h b/libraries/entities/src/EntityTree.h index a7fa438984..43cd8780ab 100644 --- a/libraries/entities/src/EntityTree.h +++ b/libraries/entities/src/EntityTree.h @@ -135,7 +135,6 @@ public: int processEraseMessage(const QByteArray& dataByteArray, const SharedNodePointer& sourceNode); int processEraseMessageDetails(const QByteArray& dataByteArray, const SharedNodePointer& sourceNode); - void handleAddEntityResponse(const QByteArray& packet); EntityItemFBXService* getFBXService() const { return _fbxService; } void setFBXService(EntityItemFBXService* service) { _fbxService = service; } diff --git a/libraries/networking/src/PacketHeaders.cpp b/libraries/networking/src/PacketHeaders.cpp index 262d1175b6..cc373a59ee 100644 --- a/libraries/networking/src/PacketHeaders.cpp +++ b/libraries/networking/src/PacketHeaders.cpp @@ -119,7 +119,6 @@ QString nameForPacketType(PacketType packetType) { PACKET_TYPE_NAME_LOOKUP(PacketTypeEntityData); PACKET_TYPE_NAME_LOOKUP(PacketTypeEntityAddOrEdit); PACKET_TYPE_NAME_LOOKUP(PacketTypeEntityErase); - PACKET_TYPE_NAME_LOOKUP(PacketTypeEntityAddResponse); PACKET_TYPE_NAME_LOOKUP(PacketTypeOctreeDataNack); PACKET_TYPE_NAME_LOOKUP(PacketTypeStopNode); PACKET_TYPE_NAME_LOOKUP(PacketTypeAudioEnvironment); diff --git a/libraries/networking/src/PacketHeaders.h b/libraries/networking/src/PacketHeaders.h index af4f0bf683..1adfcf5ca8 100644 --- a/libraries/networking/src/PacketHeaders.h +++ b/libraries/networking/src/PacketHeaders.h @@ -70,7 +70,7 @@ enum PacketType { PacketTypeEntityData, PacketTypeEntityAddOrEdit, PacketTypeEntityErase, - PacketTypeEntityAddResponse, + UNUSED_11, PacketTypeOctreeDataNack, // 45 PacketTypeStopNode, PacketTypeAudioEnvironment, diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 8668fb02d3..427944e254 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -319,8 +319,10 @@ void ScriptEngine::init() { registerAudioMetaTypes(this); qScriptRegisterMetaType(this, EntityItemPropertiesToScriptValue, EntityItemPropertiesFromScriptValue); + qScriptRegisterMetaType(this, EntityItemIDtoScriptValue, EntityItemIDfromScriptValue); qScriptRegisterMetaType(this, RayToEntityIntersectionResultToScriptValue, RayToEntityIntersectionResultFromScriptValue); - qScriptRegisterSequenceMetaType >(this); + qScriptRegisterSequenceMetaType>(this); + qScriptRegisterSequenceMetaType>(this); qScriptRegisterSequenceMetaType >(this); qScriptRegisterSequenceMetaType >(this);