From 10f484c668263fa15855e220448680c68e816942 Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Thu, 9 Nov 2017 12:21:23 -0700 Subject: [PATCH 1/2] 6944 Avatar scale is saved across domains --- interface/src/avatar/MyAvatar.cpp | 14 +++++++++++++- interface/src/avatar/MyAvatar.h | 4 ++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 76205bdde9..0dfcf93a65 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -135,7 +135,7 @@ MyAvatar::MyAvatar(QThread* thread) : connect(&domainHandler, &DomainHandler::settingsReceived, this, &MyAvatar::restrictScaleFromDomainSettings); // when we leave a domain we lift whatever restrictions that domain may have placed on our scale - connect(&domainHandler, &DomainHandler::disconnectedFromDomain, this, &MyAvatar::clearScaleRestriction); + connect(&domainHandler, &DomainHandler::disconnectedFromDomain, this, &MyAvatar::leaveDomain); _bodySensorMatrix = deriveBodyFromHMDSensor(); @@ -2279,6 +2279,18 @@ void MyAvatar::restrictScaleFromDomainSettings(const QJsonObject& domainSettings settings.endGroup(); } +void MyAvatar::leaveDomain() { + clearScaleRestriction(); + saveAvatarScale(); +} + +void MyAvatar::saveAvatarScale() { + Settings settings; + settings.beginGroup("Avatar"); + settings.setValue("scale", _targetScale); + settings.endGroup(); +} + void MyAvatar::clearScaleRestriction() { _domainMinimumScale = MIN_AVATAR_SCALE; _domainMaximumScale = MAX_AVATAR_SCALE; diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 288e6dd638..9133b967fa 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -561,6 +561,8 @@ public slots: float getDomainMinScale(); float getDomainMaxScale(); + void leaveDomain(); + void setGravity(float gravity); float getGravity(); @@ -638,6 +640,8 @@ private: virtual int parseDataFromBuffer(const QByteArray& buffer) override; virtual glm::vec3 getSkeletonPosition() const override; + void saveAvatarScale(); + glm::vec3 getScriptedMotorVelocity() const { return _scriptedMotorVelocity; } float getScriptedMotorTimescale() const { return _scriptedMotorTimescale; } QString getScriptedMotorFrame() const; From 355b465109cfa92dd49d944d8d5b32e89526436b Mon Sep 17 00:00:00 2001 From: luiscuenca Date: Thu, 9 Nov 2017 16:05:53 -0700 Subject: [PATCH 2/2] make leaveDomain slot private --- interface/src/avatar/MyAvatar.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 9133b967fa..e4e8f8d02c 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -561,8 +561,6 @@ public slots: float getDomainMinScale(); float getDomainMaxScale(); - void leaveDomain(); - void setGravity(float gravity); float getGravity(); @@ -624,6 +622,9 @@ signals: void attachmentsChanged(); void scaleChanged(); +private slots: + void leaveDomain(); + private: bool requiresSafeLanding(const glm::vec3& positionIn, glm::vec3& positionOut);