diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index c637cf4bb9..e2c7bb56c1 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -48,6 +48,13 @@ RenderableModelEntityItem::~RenderableModelEntityItem() { void RenderableModelEntityItem::setModelURL(const QString& url) { auto& currentURL = getParsedModelURL(); + if (_model && (currentURL != url)) { + // The machinery for updateModelBounds will give existing models the opportunity to fix their translation/rotation/scale/registration. + // The first two are straightforward, but the latter two have guards to make sure they don't happen after they've already been set. + // Here we reset those guards. This doesn't cause the entity values to change -- it just allows the model to match once it comes in. + _model->setScaleToFit(false, getDimensions()); + _model->setSnapModelToRegistrationPoint(false, getRegistrationPoint()); + } ModelEntityItem::setModelURL(url); if (currentURL != getParsedModelURL() || !_model) {