From 1ef01d670dd1d84c3f96d4241096d9b23a147c03 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Mon, 25 Jan 2016 18:07:14 -0800 Subject: [PATCH] Revert "Make entity properties be undefined after entity is unloaded" --- examples/libraries/entitySelectionTool.js | 1 + .../entities/src/EntityItemProperties.cpp | 22 +++++++++++---- libraries/entities/src/EntityItemProperties.h | 28 ++++++++----------- .../entities/src/EntityScriptingInterface.cpp | 4 +-- 4 files changed, 30 insertions(+), 25 deletions(-) diff --git a/examples/libraries/entitySelectionTool.js b/examples/libraries/entitySelectionTool.js index c1675ef044..94ffb48a71 100644 --- a/examples/libraries/entitySelectionTool.js +++ b/examples/libraries/entitySelectionTool.js @@ -1515,6 +1515,7 @@ SelectionDisplay = (function() { } that.updateRotationHandles(); + that.highlightSelectable(); var rotation, dimensions, position, registrationPoint; diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 3d67d32ea8..0ccd6a74bd 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -32,7 +32,22 @@ KeyLightPropertyGroup EntityItemProperties::_staticKeyLight; EntityPropertyList PROP_LAST_ITEM = (EntityPropertyList)(PROP_AFTER_LAST_ITEM - 1); EntityItemProperties::EntityItemProperties(EntityPropertyFlags desiredProperties) : - _desiredProperties(desiredProperties) //, + +_id(UNKNOWN_ENTITY_ID), +_idSet(false), +_lastEdited(0), +_type(EntityTypes::Unknown), + +_glowLevel(0.0f), +_localRenderAlpha(1.0f), + +_glowLevelChanged(false), +_localRenderAlphaChanged(false), + +_defaultSettings(true), +_naturalDimensions(1.0f, 1.0f, 1.0f), +_naturalPosition(0.0f, 0.0f, 0.0f), +_desiredProperties(desiredProperties) { } @@ -306,11 +321,6 @@ QScriptValue EntityItemProperties::copyToScriptValue(QScriptEngine* engine, bool QScriptValue properties = engine->newObject(); EntityItemProperties defaultEntityProperties; - if (!_entityFound) { - // Return without setting any default property values so that properties are reported in JavaScript as undefined. - return properties; - } - if (_idSet) { COPY_PROPERTY_TO_QSCRIPTVALUE_GETTER_ALWAYS(id, _id.toString()); } diff --git a/libraries/entities/src/EntityItemProperties.h b/libraries/entities/src/EntityItemProperties.h index f66d17eae2..ff288fbe95 100644 --- a/libraries/entities/src/EntityItemProperties.h +++ b/libraries/entities/src/EntityItemProperties.h @@ -272,36 +272,32 @@ public: void setJointRotationsDirty() { _jointRotationsSetChanged = true; _jointRotationsChanged = true; } void setJointTranslationsDirty() { _jointTranslationsSetChanged = true; _jointTranslationsChanged = true; } - void setEntityFound() { _entityFound = true; } - protected: QString getCollisionMaskAsString() const; void setCollisionMaskFromString(const QString& maskString); private: - QUuid _id { UNKNOWN_ENTITY_ID }; - bool _idSet { false }; - quint64 _lastEdited { 0 }; - EntityTypes::EntityType _type { EntityTypes::Unknown }; + QUuid _id; + bool _idSet; + quint64 _lastEdited; + EntityTypes::EntityType _type; void setType(const QString& typeName) { _type = EntityTypes::getEntityTypeFromName(typeName); } - float _glowLevel { 0.0f }; - float _localRenderAlpha { 1.0f }; - bool _glowLevelChanged { false }; - bool _localRenderAlphaChanged { false }; - bool _defaultSettings { true }; - bool _dimensionsInitialized { true }; // Only false if creating an entity locally with no dimensions properties + float _glowLevel; + float _localRenderAlpha; + bool _glowLevelChanged; + bool _localRenderAlphaChanged; + bool _defaultSettings; + bool _dimensionsInitialized = true; // Only false 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. QVector _sittingPoints; QStringList _textureNames; - glm::vec3 _naturalDimensions { 1.0f, 1.0f, 1.0f }; - glm::vec3 _naturalPosition { 0.0f, 0.0f, 0.0f }; + glm::vec3 _naturalDimensions; + glm::vec3 _naturalPosition; EntityPropertyFlags _desiredProperties; // if set will narrow scopes of copy/to/from to just these properties - - bool _entityFound { false }; }; Q_DECLARE_METATYPE(EntityItemProperties); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 5bee9ac3d8..8fd7be912e 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -202,13 +202,11 @@ EntityItemProperties EntityScriptingInterface::getEntityProperties(QUuid identit } } - results = convertLocationToScriptSemantics(results); - results.setEntityFound(); } }); } - return results; + return convertLocationToScriptSemantics(results); } QUuid EntityScriptingInterface::editEntity(QUuid id, const EntityItemProperties& scriptSideProperties) {