diff --git a/interface/src/entities/EntityTreeRenderer.cpp b/interface/src/entities/EntityTreeRenderer.cpp index 3d83c31141..4bc2c27938 100644 --- a/interface/src/entities/EntityTreeRenderer.cpp +++ b/interface/src/entities/EntityTreeRenderer.cpp @@ -90,12 +90,14 @@ Model* EntityTreeRenderer::getModel(const EntityItem& entityItem) { } } - // if we don't have a model... - if (!model) { + // if we don't have a model... but our item does have a model URL + if (!model && !entityItem.getModelURL().isEmpty()) { // Make sure we only create new models on the thread that owns the EntityTreeRenderer if (QThread::currentThread() != thread()) { + qDebug() << "about to call QMetaObject::invokeMethod(this, 'getModel', Qt::BlockingQueuedConnection,..."; QMetaObject::invokeMethod(this, "getModel", Qt::BlockingQueuedConnection, Q_RETURN_ARG(Model*, model), Q_ARG(const EntityItem&, entityItem)); + qDebug() << "got it... model=" << model; return model; } diff --git a/interface/src/entities/EntityTreeRenderer.h b/interface/src/entities/EntityTreeRenderer.h index 1dbd2ce8ad..1f71b8cc48 100644 --- a/interface/src/entities/EntityTreeRenderer.h +++ b/interface/src/entities/EntityTreeRenderer.h @@ -27,6 +27,7 @@ // Generic client side Octree renderer class. class EntityTreeRenderer : public OctreeRenderer, public EntityItemFBXService { + Q_OBJECT public: EntityTreeRenderer(); virtual ~EntityTreeRenderer(); @@ -54,9 +55,10 @@ public: /// clears the tree virtual void clear(); + Q_INVOKABLE Model* getModel(const EntityItem& modelItem); + protected: void clearModelsCache(); - Model* getModel(const EntityItem& modelItem); QMap _knownEntityItemModels; QMap _unknownEntityItemModels; }; diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 5d94d4fec0..f8075264de 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -761,7 +761,8 @@ int EntityTree::processEditPacketData(PacketType packetType, const unsigned char switch (packetType) { case PacketTypeEntityAddOrEdit: { // TODO: need to do this - + + qDebug() << "EntityTree::processEditPacketData().... NOT YET IMPLEMENTED!!!"; #if 0 bool isValid = false; EntityItem* newEntity = NULL; // EntityItem::fromEditPacket(editData, maxLength, processedBytes, this, isValid); @@ -841,6 +842,7 @@ void EntityTree::update() { for (int i = 0; i < movingEntitys; i++) { // XXXBHG: replace storeEntity with new API!! + qDebug() << "EntityTree::update().... NOT YET IMPLEMENTED!!!"; #if 0 ////////////////////////////////////////////////////// bool shouldDie = args._movingEntities[i]->getShouldBeDeleted();