From 9de5721a4882d021fc035db69c05e5cc170d0a09 Mon Sep 17 00:00:00 2001 From: "U-GAPOS\\andrew" Date: Wed, 4 Nov 2015 10:23:55 -0800 Subject: [PATCH 1/2] set _hmdFollowVelocity to zero when done following --- interface/src/avatar/MyAvatar.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 741a82fdb8..79d608640a 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1299,11 +1299,11 @@ void MyAvatar::prepareForPhysicsSimulation() { _characterController.setAvatarPositionAndOrientation(getPosition(), getOrientation()); if (qApp->isHMDMode()) { updateHMDFollowVelocity(); - _characterController.setHMDVelocity(_hmdFollowVelocity); - } else { - _characterController.setHMDVelocity(Vectors::ZERO); + } else if (_isFollowingHMD) { _isFollowingHMD = false; + _hmdFollowVelocity = Vectors::ZERO; } + _characterController.setHMDVelocity(_hmdFollowVelocity); } void MyAvatar::harvestResultsFromPhysicsSimulation() { @@ -1339,6 +1339,7 @@ void MyAvatar::adjustSensorTransform(glm::vec3 hmdShift) { // the "adjustment" is more or less complete so stop following _isFollowingHMD = false; _hmdFollowSpeed = 0.0f; + _hmdFollowVelocity = Vectors::ZERO; // and slam the body's transform anyway to eliminate any slight errors glm::vec3 finalBodyPosition = extractTranslation(worldBodyMatrix); nextAttitude(finalBodyPosition, finalBodyRotation); From f260c6b12bf6372a41ffab2fa3cb163ba128907c Mon Sep 17 00:00:00 2001 From: "U-GAPOS\\andrew" Date: Wed, 4 Nov 2015 10:47:39 -0800 Subject: [PATCH 2/2] fix bad time measurment in AtRestDetector --- libraries/shared/src/AtRestDetector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/shared/src/AtRestDetector.cpp b/libraries/shared/src/AtRestDetector.cpp index d790e2b066..4c08b30dcd 100644 --- a/libraries/shared/src/AtRestDetector.cpp +++ b/libraries/shared/src/AtRestDetector.cpp @@ -32,7 +32,7 @@ void AtRestDetector::reset(const glm::vec3& startPosition, const glm::quat& star bool AtRestDetector::update(const glm::vec3& position, const glm::quat& rotation) { uint64_t now = usecTimestampNow(); - float dt = (float)(_lastUpdateTime - now) / (float)USECS_PER_SECOND; + float dt = (float)(now - _lastUpdateTime) / (float)USECS_PER_SECOND; _lastUpdateTime = now; const float TAU = 1.0f; float delta = glm::min(dt / TAU, 1.0f);