From 750d505f9b3d36b93861a87ad2dadc5beecda9ca Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Thu, 30 Nov 2017 17:41:36 -0800 Subject: [PATCH] fix issues in model import sizing caused by recent refactor --- .../entities-renderer/src/RenderableModelEntityItem.cpp | 8 +++++--- libraries/entities/src/EntityItem.cpp | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index ed6ce10b50..06b81ff428 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -75,8 +75,11 @@ RenderableModelEntityItem::RenderableModelEntityItem(const EntityItemID& entityI RenderableModelEntityItem::~RenderableModelEntityItem() { } void RenderableModelEntityItem::setDimensions(const glm::vec3& value) { - _dimensionsInitialized = true; - ModelEntityItem::setDimensions(value); + glm::vec3 newDimensions = glm::max(value, glm::vec3(0.0f)); // can never have negative dimensions + if (getDimensions() != newDimensions) { + _dimensionsInitialized = true; + ModelEntityItem::setDimensions(value); + } } QVariantMap parseTexturesToMap(QString textures, const QVariantMap& defaultTextures) { @@ -1160,7 +1163,6 @@ bool ModelEntityRenderer::needsRenderUpdateFromTypedEntity(const TypedEntityPoin return true; } - if (model->getScaleToFitDimensions() != entity->getDimensions() || model->getRegistrationPoint() != entity->getRegistrationPoint()) { return true; diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 4f2b290635..c8e7ce6c11 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -1622,11 +1622,13 @@ void EntityItem::setDimensions(const glm::vec3& value) { if (getDimensions() != newDimensions) { withWriteLock([&] { _dimensions = newDimensions; - _dirtyFlags |= (Simulation::DIRTY_SHAPE | Simulation::DIRTY_MASS); - _queryAACubeSet = false; }); locationChanged(); dimensionsChanged(); + withWriteLock([&] { + _dirtyFlags |= (Simulation::DIRTY_SHAPE | Simulation::DIRTY_MASS); + _queryAACubeSet = false; + }); } }