From 3a207507bf68ba106c90b152645696aa1f5281d7 Mon Sep 17 00:00:00 2001 From: ksuprynowicz Date: Sat, 1 Apr 2023 15:10:11 +0200 Subject: [PATCH] Optimized EntityItemProperties::copyFromScriptValue --- .../src/AmbientLightPropertyGroup.cpp | 2 +- .../entities/src/AmbientLightPropertyGroup.h | 2 +- .../entities/src/AnimationPropertyGroup.cpp | 2 +- .../entities/src/AnimationPropertyGroup.h | 2 +- libraries/entities/src/BloomPropertyGroup.cpp | 2 +- libraries/entities/src/BloomPropertyGroup.h | 2 +- .../entities/src/EntityItemProperties.cpp | 32 +++-- .../entities/src/EntityItemPropertiesMacros.h | 118 ++++++++++-------- libraries/entities/src/GrabPropertyGroup.cpp | 2 +- libraries/entities/src/GrabPropertyGroup.h | 2 +- libraries/entities/src/HazePropertyGroup.cpp | 2 +- libraries/entities/src/HazePropertyGroup.h | 2 +- .../entities/src/KeyLightPropertyGroup.cpp | 2 +- .../entities/src/KeyLightPropertyGroup.h | 2 +- libraries/entities/src/PropertyGroup.h | 2 +- libraries/entities/src/PulsePropertyGroup.cpp | 2 +- libraries/entities/src/PulsePropertyGroup.h | 2 +- .../entities/src/RingGizmoPropertyGroup.cpp | 2 +- .../entities/src/RingGizmoPropertyGroup.h | 2 +- .../entities/src/SkyboxPropertyGroup.cpp | 2 +- libraries/entities/src/SkyboxPropertyGroup.h | 2 +- 21 files changed, 104 insertions(+), 84 deletions(-) diff --git a/libraries/entities/src/AmbientLightPropertyGroup.cpp b/libraries/entities/src/AmbientLightPropertyGroup.cpp index 6400018c49..829d8ecdf6 100644 --- a/libraries/entities/src/AmbientLightPropertyGroup.cpp +++ b/libraries/entities/src/AmbientLightPropertyGroup.cpp @@ -28,7 +28,7 @@ void AmbientLightPropertyGroup::copyToScriptValue(const EntityPropertyFlags& des COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_AMBIENT_LIGHT_URL, AmbientLight, ambientLight, AmbientURL, ambientURL); } -void AmbientLightPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void AmbientLightPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(ambientLight, ambientIntensity, float, setAmbientIntensity); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(ambientLight, ambientURL, QString, setAmbientURL); diff --git a/libraries/entities/src/AmbientLightPropertyGroup.h b/libraries/entities/src/AmbientLightPropertyGroup.h index fa3b17ea19..52451a6f8b 100644 --- a/libraries/entities/src/AmbientLightPropertyGroup.h +++ b/libraries/entities/src/AmbientLightPropertyGroup.h @@ -44,7 +44,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const AmbientLightPropertyGroup& other); diff --git a/libraries/entities/src/AnimationPropertyGroup.cpp b/libraries/entities/src/AnimationPropertyGroup.cpp index 065dda00de..d15ee3d4cf 100644 --- a/libraries/entities/src/AnimationPropertyGroup.cpp +++ b/libraries/entities/src/AnimationPropertyGroup.cpp @@ -80,7 +80,7 @@ void AnimationPropertyGroup::copyToScriptValue(const EntityPropertyFlags& desire } -void AnimationPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void AnimationPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(animation, url, QString, setURL); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(animation, allowTranslation, bool, setAllowTranslation); diff --git a/libraries/entities/src/AnimationPropertyGroup.h b/libraries/entities/src/AnimationPropertyGroup.h index 1ad2e956d8..c980119f8e 100644 --- a/libraries/entities/src/AnimationPropertyGroup.h +++ b/libraries/entities/src/AnimationPropertyGroup.h @@ -38,7 +38,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const AnimationPropertyGroup& other); diff --git a/libraries/entities/src/BloomPropertyGroup.cpp b/libraries/entities/src/BloomPropertyGroup.cpp index 0867efac43..f785dc7465 100644 --- a/libraries/entities/src/BloomPropertyGroup.cpp +++ b/libraries/entities/src/BloomPropertyGroup.cpp @@ -24,7 +24,7 @@ void BloomPropertyGroup::copyToScriptValue(const EntityPropertyFlags& desiredPro COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_BLOOM_SIZE, Bloom, bloom, BloomSize, bloomSize); } -void BloomPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void BloomPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(bloom, bloomIntensity, float, setBloomIntensity); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(bloom, bloomThreshold, float, setBloomThreshold); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(bloom, bloomSize, float, setBloomSize); diff --git a/libraries/entities/src/BloomPropertyGroup.h b/libraries/entities/src/BloomPropertyGroup.h index 5cc686ddae..44b2d18a39 100644 --- a/libraries/entities/src/BloomPropertyGroup.h +++ b/libraries/entities/src/BloomPropertyGroup.h @@ -45,7 +45,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const BloomPropertyGroup& other); diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index aca2298773..5691455611 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -2030,6 +2030,14 @@ ScriptValue EntityItemProperties::copyToScriptValue(ScriptEngine* engine, bool s } void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool honorReadOnly) { + //qDebug() << "EntityItemProperties::copyFromScriptValue: properties: " << object.getPropertyNames(); + QList namesList = object.getPropertyNames(); + + QSet namesSet; + for (auto name = namesList.cbegin(); name != namesList.cend(); name++) { + namesSet.insert(*name); + } + ScriptValue typeScriptValue = object.property("type"); if (typeScriptValue.isValid()) { setType(typeScriptValue.toVariant().toString()); @@ -2067,7 +2075,7 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h COPY_PROPERTY_FROM_QSCRIPTVALUE(ignorePickIntersection, bool, setIgnorePickIntersection); COPY_PROPERTY_FROM_QSCRIPTVALUE(renderWithZones, qVectorQUuid, setRenderWithZones); COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(billboardMode, BillboardMode); - _grab.copyFromScriptValue(object, _defaultSettings); + _grab.copyFromScriptValue(object, namesSet, _defaultSettings); // Physics COPY_PROPERTY_FROM_QSCRIPTVALUE(density, float, setDensity); @@ -2130,7 +2138,7 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h COPY_PROPERTY_FROM_QSCRIPTVALUE(compoundShapeURL, QString, setCompoundShapeURL); COPY_PROPERTY_FROM_QSCRIPTVALUE(color, u8vec3Color, setColor); COPY_PROPERTY_FROM_QSCRIPTVALUE(alpha, float, setAlpha); - _pulse.copyFromScriptValue(object, _defaultSettings); + _pulse.copyFromScriptValue(object, namesSet, _defaultSettings); COPY_PROPERTY_FROM_QSCRIPTVALUE(textures, QString, setTextures); // Particles @@ -2177,7 +2185,7 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h COPY_PROPERTY_FROM_QSCRIPTVALUE(groupCulled, bool, setGroupCulled); COPY_PROPERTY_FROM_QSCRIPTVALUE(blendshapeCoefficients, QString, setBlendshapeCoefficients); COPY_PROPERTY_FROM_QSCRIPTVALUE(useOriginalPivot, bool, setUseOriginalPivot); - _animation.copyFromScriptValue(object, _defaultSettings); + _animation.copyFromScriptValue(object, namesSet, _defaultSettings); // Light COPY_PROPERTY_FROM_QSCRIPTVALUE(isSpotlight, bool, setIsSpotlight); @@ -2205,11 +2213,11 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(alignment, Alignment); // Zone - _keyLight.copyFromScriptValue(object, _defaultSettings); - _ambientLight.copyFromScriptValue(object, _defaultSettings); - _skybox.copyFromScriptValue(object, _defaultSettings); - _haze.copyFromScriptValue(object, _defaultSettings); - _bloom.copyFromScriptValue(object, _defaultSettings); + _keyLight.copyFromScriptValue(object, namesSet, _defaultSettings); + _ambientLight.copyFromScriptValue(object, namesSet, _defaultSettings); + _skybox.copyFromScriptValue(object, namesSet, _defaultSettings); + _haze.copyFromScriptValue(object, namesSet, _defaultSettings); + _bloom.copyFromScriptValue(object, namesSet, _defaultSettings); COPY_PROPERTY_FROM_QSCRIPTVALUE(flyingAllowed, bool, setFlyingAllowed); COPY_PROPERTY_FROM_QSCRIPTVALUE(ghostingAllowed, bool, setGhostingAllowed); COPY_PROPERTY_FROM_QSCRIPTVALUE(filterURL, QString, setFilterURL); @@ -2281,10 +2289,10 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h // Gizmo COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(gizmoType, GizmoType); - _ring.copyFromScriptValue(object, _defaultSettings); + _ring.copyFromScriptValue(object, namesSet, _defaultSettings); // Handle conversions from old 'textures' property to "imageURL" - { + if (namesSet.contains("textures")) { ScriptValue V = object.property("textures"); if (_type == EntityTypes::Image && V.isValid() && !object.property("imageURL").isValid()) { bool isValid = false; @@ -2303,7 +2311,7 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h } // Handle old "faceCamera" and "isFacingAvatar" props - if (_type != EntityTypes::PolyLine) { + if (_type != EntityTypes::PolyLine && namesSet.contains("textures")) { ScriptValue P = object.property("faceCamera"); if (P.isValid() && !object.property("billboardMode").isValid()) { bool newValue = P.toVariant().toBool(); @@ -2313,7 +2321,7 @@ void EntityItemProperties::copyFromScriptValue(const ScriptValue& object, bool h } } } - { + if (namesSet.contains("isFacingAvatar")) { ScriptValue P = object.property("isFacingAvatar"); if (P.isValid() && !object.property("billboardMode").isValid() && !object.property("faceCamera").isValid()) { bool newValue = P.toVariant().toBool(); diff --git a/libraries/entities/src/EntityItemPropertiesMacros.h b/libraries/entities/src/EntityItemPropertiesMacros.h index c65dbe23d5..92e3481ffa 100644 --- a/libraries/entities/src/EntityItemPropertiesMacros.h +++ b/libraries/entities/src/EntityItemPropertiesMacros.h @@ -344,47 +344,10 @@ inline QRect QRect_convertFromScriptValue(const ScriptValue& v, bool& isValid) { -#define COPY_PROPERTY_FROM_QSCRIPTVALUE(P, T, S) \ - { \ - ScriptValue V = object.property(#P); \ - if (V.isValid()) { \ - bool isValid = false; \ - T newValue = T##_convertFromScriptValue(V, isValid); \ - if (isValid && (_defaultSettings || newValue != _##P)) { \ - S(newValue); \ - } \ - } \ - } - -#define COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(P, T, S, G) \ -{ \ - ScriptValue V = object.property(#P); \ - if (V.isValid()) { \ - bool isValid = false; \ - T newValue = T##_convertFromScriptValue(V, isValid); \ - if (isValid && (_defaultSettings || newValue != G())) { \ - S(newValue); \ - } \ - } \ -} - -#define COPY_PROPERTY_FROM_QSCRIPTVALUE_NOCHECK(P, T, S) \ -{ \ - ScriptValue V = object.property(#P); \ - if (V.isValid()) { \ - bool isValid = false; \ - T newValue = T##_convertFromScriptValue(V, isValid); \ - if (isValid && (_defaultSettings)) { \ - S(newValue); \ - } \ - } \ -} - -#define COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(G, P, T, S) \ +#define COPY_PROPERTY_FROM_QSCRIPTVALUE(P, T, S) \ { \ - ScriptValue G = object.property(#G); \ - if (G.isValid()) { \ - ScriptValue V = G.property(#P); \ + if (namesSet.contains(#P)) { \ + ScriptValue V = object.property(#P); \ if (V.isValid()) { \ bool isValid = false; \ T newValue = T##_convertFromScriptValue(V, isValid); \ @@ -395,22 +358,55 @@ inline QRect QRect_convertFromScriptValue(const ScriptValue& v, bool& isValid) { } \ } -#define COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(P, S) \ - { \ - ScriptValue P = object.property(#P); \ - if (P.isValid()) { \ - QString newValue = P.toVariant().toString(); \ - if (_defaultSettings || newValue != get##S##AsString()) { \ - set##S##FromString(newValue); \ - } \ - } \ +#define COPY_PROPERTY_FROM_QSCRIPTVALUE_GETTER(P, T, S, G) \ +{ \ + if (namesSet.contains(#P)) { \ + ScriptValue V = object.property(#P); \ + if (V.isValid()) { \ + bool isValid = false; \ + T newValue = T##_convertFromScriptValue(V, isValid); \ + if (isValid && (_defaultSettings || newValue != G())) { \ + S(newValue); \ + } \ + } \ + } \ +} + +#define COPY_PROPERTY_FROM_QSCRIPTVALUE_NOCHECK(P, T, S) \ +{ \ + if (namesSet.contains(#P)) { \ + ScriptValue V = object.property(#P); \ + if (V.isValid()) { \ + bool isValid = false; \ + T newValue = T##_convertFromScriptValue(V, isValid); \ + if (isValid && (_defaultSettings)) { \ + S(newValue); \ + } \ + } \ + } \ +} + +#define COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(G, P, T, S) \ + { \ + if (namesSet.contains(#G)) { \ + ScriptValue G = object.property(#G); \ + if (G.isValid()) { \ + ScriptValue V = G.property(#P); \ + if (V.isValid()) { \ + bool isValid = false; \ + T newValue = T##_convertFromScriptValue(V, isValid); \ + if (isValid && (_defaultSettings || newValue != _##P)) { \ + S(newValue); \ + } \ + } \ + } \ + } \ } -#define COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE_ENUM(G, P, S) \ +#define COPY_PROPERTY_FROM_QSCRIPTVALUE_ENUM(P, S) \ { \ - ScriptValue G = object.property(#G); \ - if (G.isValid()) { \ - ScriptValue P = G.property(#P); \ + if (namesSet.contains(#P)) { \ + ScriptValue P = object.property(#P); \ if (P.isValid()) { \ QString newValue = P.toVariant().toString(); \ if (_defaultSettings || newValue != get##S##AsString()) { \ @@ -420,6 +416,22 @@ inline QRect QRect_convertFromScriptValue(const ScriptValue& v, bool& isValid) { } \ } +#define COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE_ENUM(G, P, S) \ + { \ + if (namesSet.contains(#G)) { \ + ScriptValue G = object.property(#G); \ + if (G.isValid()) { \ + ScriptValue P = G.property(#P); \ + if (P.isValid()) { \ + QString newValue = P.toVariant().toString(); \ + if (_defaultSettings || newValue != get##S##AsString()) { \ + set##S##FromString(newValue); \ + } \ + } \ + } \ + } \ + } + #define DEFINE_PROPERTY_GROUP(N, n, T) \ public: \ const T& get##N() const { return _##n; } \ diff --git a/libraries/entities/src/GrabPropertyGroup.cpp b/libraries/entities/src/GrabPropertyGroup.cpp index 4bd31e73ad..f0026d8904 100644 --- a/libraries/entities/src/GrabPropertyGroup.cpp +++ b/libraries/entities/src/GrabPropertyGroup.cpp @@ -45,7 +45,7 @@ void GrabPropertyGroup::copyToScriptValue(const EntityPropertyFlags& desiredProp } -void GrabPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void GrabPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, grabbable, bool, setGrabbable); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, grabKinematic, bool, setGrabKinematic); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(grab, grabFollowsController, bool, setGrabFollowsController); diff --git a/libraries/entities/src/GrabPropertyGroup.h b/libraries/entities/src/GrabPropertyGroup.h index eb8d99a05b..368867a6d6 100644 --- a/libraries/entities/src/GrabPropertyGroup.h +++ b/libraries/entities/src/GrabPropertyGroup.h @@ -76,7 +76,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const GrabPropertyGroup& other); diff --git a/libraries/entities/src/HazePropertyGroup.cpp b/libraries/entities/src/HazePropertyGroup.cpp index 106eb2fe63..7cd41e8d59 100644 --- a/libraries/entities/src/HazePropertyGroup.cpp +++ b/libraries/entities/src/HazePropertyGroup.cpp @@ -36,7 +36,7 @@ void HazePropertyGroup::copyToScriptValue(const EntityPropertyFlags& desiredProp COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_KEYLIGHT_ALTITUDE, Haze, haze, HazeKeyLightAltitude, hazeKeyLightAltitude); } -void HazePropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void HazePropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeRange, float, setHazeRange); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeColor, u8vec3Color, setHazeColor); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeGlareColor, u8vec3Color, setHazeGlareColor); diff --git a/libraries/entities/src/HazePropertyGroup.h b/libraries/entities/src/HazePropertyGroup.h index 2156681105..2b899871fa 100644 --- a/libraries/entities/src/HazePropertyGroup.h +++ b/libraries/entities/src/HazePropertyGroup.h @@ -81,7 +81,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const HazePropertyGroup& other); diff --git a/libraries/entities/src/KeyLightPropertyGroup.cpp b/libraries/entities/src/KeyLightPropertyGroup.cpp index 6eb55f0e52..74ea8dc520 100644 --- a/libraries/entities/src/KeyLightPropertyGroup.cpp +++ b/libraries/entities/src/KeyLightPropertyGroup.cpp @@ -38,7 +38,7 @@ void KeyLightPropertyGroup::copyToScriptValue(const EntityPropertyFlags& desired COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_KEYLIGHT_SHADOW_MAX_DISTANCE, KeyLight, keyLight, ShadowMaxDistance, shadowMaxDistance); } -void KeyLightPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void KeyLightPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(keyLight, color, u8vec3Color, setColor); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(keyLight, intensity, float, setIntensity); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(keyLight, direction, vec3, setDirection); diff --git a/libraries/entities/src/KeyLightPropertyGroup.h b/libraries/entities/src/KeyLightPropertyGroup.h index ca42256858..7d92813a54 100644 --- a/libraries/entities/src/KeyLightPropertyGroup.h +++ b/libraries/entities/src/KeyLightPropertyGroup.h @@ -51,7 +51,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const KeyLightPropertyGroup& other); diff --git a/libraries/entities/src/PropertyGroup.h b/libraries/entities/src/PropertyGroup.h index 83cea9aa23..fab78c5ef6 100644 --- a/libraries/entities/src/PropertyGroup.h +++ b/libraries/entities/src/PropertyGroup.h @@ -35,7 +35,7 @@ public: // EntityItemProperty related helpers virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const = 0; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) = 0; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) = 0; virtual void debugDump() const { } virtual void listChangedProperties(QList& out) { } diff --git a/libraries/entities/src/PulsePropertyGroup.cpp b/libraries/entities/src/PulsePropertyGroup.cpp index cd55a73357..b760ac3c29 100644 --- a/libraries/entities/src/PulsePropertyGroup.cpp +++ b/libraries/entities/src/PulsePropertyGroup.cpp @@ -69,7 +69,7 @@ void PulsePropertyGroup::copyToScriptValue(const EntityPropertyFlags& desiredPro COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE_GETTER(PROP_PULSE_ALPHA_MODE, Pulse, pulse, AlphaMode, alphaMode, getAlphaModeAsString); } -void PulsePropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void PulsePropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(pulse, min, float, setMin); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(pulse, max, float, setMax); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(pulse, period, float, setPeriod); diff --git a/libraries/entities/src/PulsePropertyGroup.h b/libraries/entities/src/PulsePropertyGroup.h index 7a12ec0dd3..e874f114e4 100644 --- a/libraries/entities/src/PulsePropertyGroup.h +++ b/libraries/entities/src/PulsePropertyGroup.h @@ -45,7 +45,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const PulsePropertyGroup& other); diff --git a/libraries/entities/src/RingGizmoPropertyGroup.cpp b/libraries/entities/src/RingGizmoPropertyGroup.cpp index 3a82a66d22..f8e106c722 100644 --- a/libraries/entities/src/RingGizmoPropertyGroup.cpp +++ b/libraries/entities/src/RingGizmoPropertyGroup.cpp @@ -48,7 +48,7 @@ void RingGizmoPropertyGroup::copyToScriptValue(const EntityPropertyFlags& desire COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE_TYPED(PROP_MINOR_TICK_MARKS_COLOR, Ring, ring, MinorTickMarksColor, minorTickMarksColor, u8vec3Color); } -void RingGizmoPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void RingGizmoPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(ring, startAngle, float, setStartAngle); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(ring, endAngle, float, setEndAngle); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(ring, innerRadius, float, setInnerRadius); diff --git a/libraries/entities/src/RingGizmoPropertyGroup.h b/libraries/entities/src/RingGizmoPropertyGroup.h index daa9358b58..7779fea3c1 100644 --- a/libraries/entities/src/RingGizmoPropertyGroup.h +++ b/libraries/entities/src/RingGizmoPropertyGroup.h @@ -61,7 +61,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const RingGizmoPropertyGroup& other); diff --git a/libraries/entities/src/SkyboxPropertyGroup.cpp b/libraries/entities/src/SkyboxPropertyGroup.cpp index e41fef7a62..12be5fe4df 100644 --- a/libraries/entities/src/SkyboxPropertyGroup.cpp +++ b/libraries/entities/src/SkyboxPropertyGroup.cpp @@ -25,7 +25,7 @@ void SkyboxPropertyGroup::copyToScriptValue(const EntityPropertyFlags& desiredPr COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_SKYBOX_URL, Skybox, skybox, URL, url); } -void SkyboxPropertyGroup::copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) { +void SkyboxPropertyGroup::copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) { COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(skybox, color, u8vec3Color, setColor); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(skybox, url, QString, setURL); } diff --git a/libraries/entities/src/SkyboxPropertyGroup.h b/libraries/entities/src/SkyboxPropertyGroup.h index 8d09938525..0cb7d8568b 100644 --- a/libraries/entities/src/SkyboxPropertyGroup.h +++ b/libraries/entities/src/SkyboxPropertyGroup.h @@ -44,7 +44,7 @@ public: virtual void copyToScriptValue(const EntityPropertyFlags& desiredProperties, ScriptValue& properties, ScriptEngine* engine, bool skipDefaults, EntityItemProperties& defaultEntityProperties) const override; - virtual void copyFromScriptValue(const ScriptValue& object, bool& _defaultSettings) override; + virtual void copyFromScriptValue(const ScriptValue& object, const QSet &namesSet, bool& _defaultSettings) override; void merge(const SkyboxPropertyGroup& other);