diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 4589651728..cfeb77f638 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4068,7 +4068,7 @@ bool Application::askToLoadScript(const QString& scriptFilenameOrURL) { } bool Application::askToUploadAsset(const QString& filename) { - if (DependencyManager::get()->getThisNodeCanRez()) { + if (!DependencyManager::get()->getThisNodeCanRez()) { QMessageBox::warning(_window, "Failed Upload", QString("You don't have upload rights on that domain.\n\n")); return false; diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index f48f8ec71e..f4f8c4c2f7 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -298,16 +298,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) { } bool movingOrAnimating = isMoving() || isAnimatingSomething(); - if ((movingOrAnimating || _needsInitialSimulation) && _model->isActive()) { - if (!_dimensionsInitialized) { - EntityItemProperties properties; - auto extents = _model->getMeshExtents(); - properties.setDimensions(extents.maximum - extents.minimum); - - qCDebug(entitiesrenderer) << "Autoresizing:" << (!getName().isEmpty() ? getName() : getModelURL()); - DependencyManager::get()->editEntity(getEntityItemID(), properties); - } - + if ((movingOrAnimating || _needsInitialSimulation) && _model->isActive() && _dimensionsInitialized) { _model->setScaleToFit(true, getDimensions()); _model->setSnapModelToRegistrationPoint(true, getRegistrationPoint()); _model->setRotation(getRotation()); @@ -376,7 +367,23 @@ Model* RenderableModelEntityItem::getModel(EntityTreeRenderer* renderer) { } bool RenderableModelEntityItem::needsToCallUpdate() const { - return _needsInitialSimulation || ModelEntityItem::needsToCallUpdate(); + return !_dimensionsInitialized || _needsInitialSimulation || ModelEntityItem::needsToCallUpdate(); +} + +void RenderableModelEntityItem::update(const quint64& now) { + if (!_dimensionsInitialized && _model && _model->isActive()) { + EntityItemProperties properties; + auto extents = _model->getMeshExtents(); + properties.setDimensions(extents.maximum - extents.minimum); + + qCDebug(entitiesrenderer) << "Autoresizing:" << (!getName().isEmpty() ? getName() : getModelURL()); + QMetaObject::invokeMethod(DependencyManager::get().data(), "editEntity", + Qt::QueuedConnection, + Q_ARG(QUuid, getEntityItemID()), + Q_ARG(EntityItemProperties, properties)); + } + + ModelEntityItem::update(now); } EntityItemProperties RenderableModelEntityItem::getProperties(EntityPropertyFlags desiredProperties) const { diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.h b/libraries/entities-renderer/src/RenderableModelEntityItem.h index 60ac710d5e..c87f70d4d6 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.h +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.h @@ -57,8 +57,9 @@ public: void** intersectedObject, bool precisionPicking) const; Model* getModel(EntityTreeRenderer* renderer); - - bool needsToCallUpdate() const; + + virtual bool needsToCallUpdate() const; + virtual void update(const quint64& now); virtual void setCompoundShapeURL(const QString& url);