From d5722c1654dd55f1ab8235ec2f5a7c09afb5887b Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 10 Nov 2016 15:03:13 -0800 Subject: [PATCH] fix clamping of scale and DRY it up --- interface/src/avatar/MyAvatar.cpp | 44 +++++++++++-------------------- interface/src/avatar/MyAvatar.h | 1 + 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 3b2b89310b..0fd7192f2f 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1832,49 +1832,37 @@ bool findAvatarAvatarPenetration(const glm::vec3 positionA, float radiusA, float return false; } +void MyAvatar::clampScaleChangeToDomainLimits(float desiredScale) { + auto clampedTargetScale = glm::clamp(desiredScale, _domainMinimumScale, _domainMaximumScale); + + if (clampedTargetScale != desiredScale) { + qCDebug(interfaceapp, "Forcing scale to %f since %f is not allowed by domain", + clampedTargetScale, desiredScale); + } + + setTargetScale(clampedTargetScale); + qCDebug(interfaceapp, "Changed scale to %f", _targetScale); +} + void MyAvatar::increaseSize() { // clamp the target scale to the allowable scale in the domain float updatedTargetScale = _targetScale * (1.0f + SCALING_RATIO); - auto clampedTargetScale = glm::clamp(_targetScale, _domainMinimumScale, _domainMaximumScale); - - if (clampedTargetScale != updatedTargetScale) { - qCDebug(interfaceapp, "Forcing scale to %f since %f is not allowed by domain", - clampedTargetScale, updatedTargetScale); - } - - setTargetScale(clampedTargetScale); - qCDebug(interfaceapp, "Changed scale to %f", (double)_targetScale); + clampScaleChangeToDomainLimits(updatedTargetScale); } void MyAvatar::decreaseSize() { // clamp the target scale to the allowable scale in the domain float updatedTargetScale = _targetScale * (1.0f - SCALING_RATIO); - auto clampedTargetScale = glm::clamp(_targetScale, _domainMinimumScale, _domainMaximumScale); - - if (clampedTargetScale != updatedTargetScale) { - qCDebug(interfaceapp, "Forcing scale to %f since %f is not allowed by domain", - clampedTargetScale, updatedTargetScale); - } - - setTargetScale(clampedTargetScale); - qCDebug(interfaceapp, "Changed scale to %f", (double)_targetScale); + clampScaleChangeToDomainLimits(updatedTargetScale); } void MyAvatar::resetSize() { - // if the default + // attempt to reset avatar size to the default const float DEFAULT_AVATAR_SCALE = 1.0f; - float allowedDefaultScale = glm::clamp(DEFAULT_AVATAR_SCALE, _domainMinimumScale, _domainMaximumScale); - - if (allowedDefaultScale != DEFAULT_AVATAR_SCALE) { - qCDebug(interfaceapp, "Forcing scale to %f since %f is not an allowed avatar scale by the domain", - allowedDefaultScale, DEFAULT_AVATAR_SCALE); - } - - setTargetScale(allowedDefaultScale); - qCDebug(interfaceapp, "Reset scale to %f", (double)_targetScale); + clampScaleChangeToDomainLimits(DEFAULT_AVATAR_SCALE); } void MyAvatar::restrictScaleFromDomainSettings(const QJsonObject& domainSettingsObject) { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index d9c88621d2..0b8db6a24d 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -372,6 +372,7 @@ private: virtual void updatePalms() override {} void lateUpdatePalms(); + void clampScaleChangeToDomainLimits(float desiredScale); float _driveKeys[MAX_DRIVE_KEYS]; bool _wasPushing;