From 84619e7adc4642c5df0e42cb0b4213b2ce72b4db Mon Sep 17 00:00:00 2001 From: amantley Date: Tue, 7 Aug 2018 10:40:11 -0700 Subject: [PATCH] cleaned up to match coding standards --- interface/src/avatar/MyAvatar.cpp | 19 ++++++----- interface/src/avatar/MyAvatar.h | 4 +-- interface/src/ui/Stats.cpp | 6 ++-- libraries/animation/src/AnimNode.h | 2 +- libraries/animation/src/AnimStateMachine.cpp | 3 +- libraries/animation/src/Rig.cpp | 34 +++++--------------- 6 files changed, 26 insertions(+), 42 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index dff14e8d40..17771f562c 100755 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -2336,15 +2336,17 @@ void MyAvatar::updateOrientation(float deltaTime) { } } -static float scaleSpeedByDirection(glm::vec2 velocityDirection, float forwardSpeed, float backwardSpeed) { - // for the elipse function --> (x^2)*(1/backwardSpeed*backwardSpeed) + y^2/(forwardSpeed*forwardSpeed) = 1, scale == y^2 when x is 0 +static float scaleSpeedByDirection(const glm::vec2 velocityDirection, const float forwardSpeed, const float backwardSpeed) { + // for the elipse function --> (x^2)/(backwardSpeed*backwardSpeed) + y^2/(forwardSpeed*forwardSpeed) = 1, scale == y^2 when x is 0 float fwdScale = forwardSpeed * forwardSpeed; - float backScale = 1.0f / (backwardSpeed * backwardSpeed); + float backScale = backwardSpeed * backwardSpeed; float scaledX = velocityDirection.x * backwardSpeed; - float scaledSpeed = backwardSpeed; + float scaledSpeed = forwardSpeed; if (velocityDirection.y < 0.0f) { - float yValue = sqrtf(fwdScale * (1.0f - (scaledX * scaledX * backScale))); - scaledSpeed = sqrtf((scaledX * scaledX) + (yValue * yValue)); + if (backScale > 0.0f) { + float yValue = sqrtf(fwdScale * (1.0f - ((scaledX * scaledX) / backScale))); + scaledSpeed = sqrtf((scaledX * scaledX) + (yValue * yValue)); + } } else { scaledSpeed = backwardSpeed; } @@ -2414,6 +2416,7 @@ void MyAvatar::updateActionMotor(float deltaTime) { // we're interacting with a floor --> simple horizontal speed and exponential decay const glm::vec2 currentVel = { direction.x, direction.z }; float scaledSpeed = scaleSpeedByDirection(currentVel, _walkSpeed.get(), _walkBackwardSpeed.get()); + // _walkSpeedScalar is a multiplier if we are in sprint mode, otherwise 1.0 _actionMotorVelocity = getSensorToWorldScale() * (scaledSpeed * _walkSpeedScalar) * direction; } @@ -3444,8 +3447,8 @@ void MyAvatar::setWalkBackwardSpeed(float value) { } -void MyAvatar::setSprintSpeed(float speed) { - _sprintSpeed.set(speed); +void MyAvatar::setSprintSpeed(float value) { + _sprintSpeed.set(value); } float MyAvatar::getSprintSpeed() const { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index d1ad22d2aa..a1f2524228 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -1080,7 +1080,7 @@ public: float getWalkSpeed() const; void setWalkBackwardSpeed(float value); float getWalkBackwardSpeed() const; - void setSprintSpeed(float speed); + void setSprintSpeed(float value); float getSprintSpeed() const; QVector getScriptUrls(); @@ -1739,7 +1739,7 @@ private: // max unscaled forward movement speed ThreadSafeValueCache _walkSpeed { DEFAULT_AVATAR_MAX_WALKING_SPEED }; - ThreadSafeValueCache _walkBackwardSpeed{ 0.5 * DEFAULT_AVATAR_MAX_WALKING_SPEED }; + ThreadSafeValueCache _walkBackwardSpeed{ DEFAULT_AVATAR_MAX_WALKING_SPEED }; ThreadSafeValueCache _sprintSpeed { AVATAR_SPRINT_SPEED_SCALAR }; float _walkSpeedScalar { AVATAR_WALK_SPEED_SCALAR }; diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index d94a5bf6fe..ce5cfd57fa 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -191,13 +191,11 @@ void Stats::updateStats(bool force) { // Third column, avatar stats auto myAvatar = avatarManager->getMyAvatar(); - auto rigCopy = myAvatar->getSkeletonModel(); - auto animStack = rigCopy->getRig().getAnimStack(); + auto animStack = myAvatar->getSkeletonModel()->getRig().getAnimStack(); - //check to see if the anim stack has changed _animStackNames.clear(); for (auto animStackIterator = animStack.begin(); animStackIterator != animStack.end(); ++animStackIterator) { - _animStackNames << animStackIterator->first + ": " + QString::number(animStackIterator->second,'f',3); + _animStackNames << animStackIterator->first + ": " + QString::number(animStackIterator->second,'f',3); } emit animStackNamesChanged(); diff --git a/libraries/animation/src/AnimNode.h b/libraries/animation/src/AnimNode.h index 6efdd2d0c0..1f14889ce4 100644 --- a/libraries/animation/src/AnimNode.h +++ b/libraries/animation/src/AnimNode.h @@ -127,7 +127,7 @@ protected: std::weak_ptr _parent; std::vector _outputJointNames; - //global available to Stats.h + // global available to Stats.h static std::map _animStack; // no copies diff --git a/libraries/animation/src/AnimStateMachine.cpp b/libraries/animation/src/AnimStateMachine.cpp index a9f5e62e3a..90fd425ae5 100644 --- a/libraries/animation/src/AnimStateMachine.cpp +++ b/libraries/animation/src/AnimStateMachine.cpp @@ -33,6 +33,7 @@ const AnimPoseVec& AnimStateMachine::evaluate(const AnimVariantMap& animVars, co bool foundState = false; for (auto& state : _states) { if (state->getID() == desiredStateID) { + // parenthesis means previous state, which is a snapshot. _previousStateID = "(" + _currentState->getID() + ")"; switchState(animVars, context, state); foundState = true; @@ -47,7 +48,7 @@ const AnimPoseVec& AnimStateMachine::evaluate(const AnimVariantMap& animVars, co // evaluate currentState transitions auto desiredState = evaluateTransitions(animVars); if (desiredState != _currentState) { - //parenthesis means snapshot of this state. + // parenthesis means previous state, which is a snapshot. _previousStateID = "(" + _currentState->getID() + ")"; switchState(animVars, context, desiredState); } diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 5c3305e05c..6ed4e93a78 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -641,10 +641,6 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos float lateralSpeed = glm::dot(localVel, IDENTITY_RIGHT); float turningSpeed = glm::orientedAngle(forward, _lastForward, IDENTITY_UP) / deltaTime; - glm::vec3 lastVel = glm::inverse(worldRotation) * _lastVelocity; - float lastForwardSpeed = glm::dot(lastVel, IDENTITY_FORWARD); - float lastLateralSpeed = glm::dot(lastVel, IDENTITY_RIGHT); - // filter speeds using a simple moving average. _averageForwardSpeed.updateAverage(forwardSpeed); _averageLateralSpeed.updateAverage(lateralSpeed); @@ -729,16 +725,11 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos _desiredStateAge += deltaTime; - bool resetVelocityAverage = false; - if (_state == RigRole::Move) { glm::vec3 horizontalVel = localVel - glm::vec3(0.0f, localVel.y, 0.0f); if (glm::length(horizontalVel) > MOVE_ENTER_SPEED_THRESHOLD) { if (fabsf(forwardSpeed) > 0.5f * fabsf(lateralSpeed)) { if (forwardSpeed > 0.0f) { - if (lastForwardSpeed < 0.0f) { - resetVelocityAverage = true; - } // forward _animVars.set("isMovingForward", true); _animVars.set("isMovingBackward", false); @@ -749,9 +740,6 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos _animVars.set("isNotMoving", false); } else { - if (lastForwardSpeed > 0.0f) { - resetVelocityAverage = true; - } // backward _animVars.set("isMovingBackward", true); _animVars.set("isMovingForward", false); @@ -763,9 +751,6 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos } } else { if (lateralSpeed > 0.0f) { - if (lastLateralSpeed < 0.0f) { - resetVelocityAverage = true; - } // right if (!_headEnabled) { _animVars.set("isMovingRight", true); @@ -782,9 +767,6 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos _animVars.set("isMovingBackward", false); _animVars.set("isNotMoving", false); } else { - if (lastLateralSpeed > 0.0f) { - resetVelocityAverage = true; - } // left if (!_headEnabled) { _animVars.set("isMovingRight", false); @@ -803,8 +785,8 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos } } } - _animVars.set("isTurningLeft", false); _animVars.set("isTurningRight", false); + _animVars.set("isTurningLeft", false); _animVars.set("isNotTurning", true); _animVars.set("isFlying", false); _animVars.set("isNotFlying", true); @@ -823,8 +805,8 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos _animVars.set("isNotTurning", false); } else { // turning left - _animVars.set("isTurningLeft", true); _animVars.set("isTurningRight", false); + _animVars.set("isTurningLeft", true); _animVars.set("isNotTurning", false); } _animVars.set("isMovingForward", false); @@ -852,8 +834,8 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos _animVars.set("isMovingRightHmd", false); _animVars.set("isMovingLeftHmd", false); _animVars.set("isNotMoving", true); - _animVars.set("isTurningLeft", false); _animVars.set("isTurningRight", false); + _animVars.set("isTurningLeft", false); _animVars.set("isNotTurning", true); _animVars.set("isFlying", false); _animVars.set("isNotFlying", true); @@ -873,8 +855,8 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos _animVars.set("isMovingRightHmd", false); _animVars.set("isMovingLeftHmd", false); _animVars.set("isNotMoving", true); - _animVars.set("isTurningLeft", false); _animVars.set("isTurningRight", false); + _animVars.set("isTurningLeft", false); _animVars.set("isNotTurning", true); _animVars.set("isFlying", true); _animVars.set("isNotFlying", false); @@ -889,13 +871,13 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos // jumping in-air _animVars.set("isMovingForward", false); _animVars.set("isMovingBackward", false); - _animVars.set("isMovingLeft", false); _animVars.set("isMovingRight", false); + _animVars.set("isMovingLeft", false); _animVars.set("isMovingRightHmd", false); _animVars.set("isMovingLeftHmd", false); _animVars.set("isNotMoving", true); - _animVars.set("isTurningLeft", false); _animVars.set("isTurningRight", false); + _animVars.set("isTurningLeft", false); _animVars.set("isNotTurning", true); _animVars.set("isFlying", false); _animVars.set("isNotFlying", true); @@ -918,13 +900,13 @@ void Rig::computeMotionAnimationState(float deltaTime, const glm::vec3& worldPos // jumping in-air _animVars.set("isMovingForward", false); _animVars.set("isMovingBackward", false); - _animVars.set("isMovingLeft", false); _animVars.set("isMovingRight", false); + _animVars.set("isMovingLeft", false); _animVars.set("isMovingRightHmd", false); _animVars.set("isMovingLeftHmd", false); _animVars.set("isNotMoving", true); - _animVars.set("isTurningLeft", false); _animVars.set("isTurningRight", false); + _animVars.set("isTurningLeft", false); _animVars.set("isNotTurning", true); _animVars.set("isFlying", false); _animVars.set("isNotFlying", true);