From 74fe9893ba0ef833203b8bd382d984b09ff57271 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Wed, 22 Jan 2014 09:17:42 -0800 Subject: [PATCH] make tipVelocity() world relative --- interface/src/BuckyBalls.cpp | 2 +- libraries/avatars/src/HandData.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/interface/src/BuckyBalls.cpp b/interface/src/BuckyBalls.cpp index 318126cc03..fec77d97f3 100644 --- a/interface/src/BuckyBalls.cpp +++ b/interface/src/BuckyBalls.cpp @@ -73,7 +73,7 @@ void BuckyBalls::grab(PalmData& palm, const glm::vec3& fingerTipPosition, glm::q diff = _bballPosition[_bballIsGrabbed[palm.getSixenseID()]] - fingerTipPosition; penetration = glm::length(diff) - (_bballRadius[_bballIsGrabbed[palm.getSixenseID()]] + COLLISION_RADIUS); _bballPosition[_bballIsGrabbed[palm.getSixenseID()]] -= glm::normalize(diff) * penetration; - glm::vec3 fingerTipVelocity = avatarOrientation * palm.getTipVelocity(); + glm::vec3 fingerTipVelocity = palm.getTipVelocity(); if (_bballElement[_bballIsGrabbed[palm.getSixenseID()]] != 1) { _bballVelocity[_bballIsGrabbed[palm.getSixenseID()]] = fingerTipVelocity; } diff --git a/libraries/avatars/src/HandData.h b/libraries/avatars/src/HandData.h index 4faf408fca..0f1e393db9 100755 --- a/libraries/avatars/src/HandData.h +++ b/libraries/avatars/src/HandData.h @@ -169,10 +169,11 @@ public: void setTipPosition(const glm::vec3& position) { _tipPosition = position; } const glm::vec3 getTipPosition() const { return _owningHandData->leapPositionToWorldPosition(_tipPosition); } - const glm::vec3 getTipRawPosition() const { return _tipPosition; } + const glm::vec3& getTipRawPosition() const { return _tipPosition; } - const glm::vec3& getTipVelocity() const { return _tipVelocity; } void setTipVelocity(const glm::vec3& velocity) { _tipVelocity = velocity; } + const glm::vec3 getTipVelocity() const { return _owningHandData->leapDirectionToWorldDirection(_tipVelocity); } + const glm::vec3& getTipRawVelocity() const { return _tipVelocity; } void incrementFramesWithoutData() { _numFramesWithoutData++; } void resetFramesWithoutData() { _numFramesWithoutData = 0; }