From a84fdecec9f0735bf18c9585f86055797cffe556 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 15 Oct 2015 18:43:32 -0700 Subject: [PATCH] Fix export bug --- .../entities-renderer/src/RenderableModelEntityItem.cpp | 2 +- libraries/entities/src/EntityItemProperties.h | 6 +++++- libraries/entities/src/EntityScriptingInterface.cpp | 2 +- libraries/entities/src/EntityTypes.cpp | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index f4f8c4c2f7..8a973c88a9 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -29,7 +29,7 @@ EntityItemPointer RenderableModelEntityItem::factory(const EntityItemID& entityI RenderableModelEntityItem::RenderableModelEntityItem(const EntityItemID& entityItemID, const EntityItemProperties& properties) : ModelEntityItem(entityItemID, properties), - _dimensionsInitialized { properties.dimensionsChanged() } + _dimensionsInitialized(properties.getDimensionsInitialized()) { } diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index 4ed7454c17..15c6669876 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -254,7 +254,10 @@ public: void setActionDataDirty() { _actionDataChanged = true; } QList listChangedProperties(); - + + bool getDimensionsInitialized() const { return _dimensionsInitialized; } + void setDimensionsInitialized(bool dimensionsInitialized) { _dimensionsInitialized = dimensionsInitialized; } + private: QUuid _id; bool _idSet; @@ -267,6 +270,7 @@ private: bool _glowLevelChanged; bool _localRenderAlphaChanged; bool _defaultSettings; + bool _dimensionsInitialized = false; // Only true if creating an entity localy with no dimensions properties // NOTE: The following are pseudo client only properties. They are only used in clients which can access // properties of model geometry. But these properties are not serialized like other properties. diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 3a530c0f3a..07c932b34e 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -65,8 +65,8 @@ void EntityScriptingInterface::setEntityTree(EntityTreePointer elementTree) { } QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties) { - EntityItemProperties propertiesWithSimID = properties; + propertiesWithSimID.setDimensionsInitialized(properties.dimensionsChanged()); EntityItemID id = EntityItemID(QUuid::createUuid()); diff --git a/libraries/entities/src/EntityTypes.cpp b/libraries/entities/src/EntityTypes.cpp index 1ef421efca..52c2242629 100644 --- a/libraries/entities/src/EntityTypes.cpp +++ b/libraries/entities/src/EntityTypes.cpp @@ -88,7 +88,9 @@ EntityItemPointer EntityTypes::constructEntityItem(EntityType entityType, const factory = _factories[entityType]; } if (factory) { - newEntityItem = factory(entityID, properties); + auto mutableProperties = properties; + mutableProperties.markAllChanged(); + newEntityItem = factory(entityID, mutableProperties); } return newEntityItem; }