From bca0ea15021e7856d97f22409bf720e3a4dc04b3 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 6 Mar 2014 12:36:52 -0800 Subject: [PATCH] Adding per-palm penetration accumulator --- libraries/avatars/src/HandData.cpp | 11 ++++++----- libraries/avatars/src/HandData.h | 4 ++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/libraries/avatars/src/HandData.cpp b/libraries/avatars/src/HandData.cpp index e4bb187f28..67d284d368 100644 --- a/libraries/avatars/src/HandData.cpp +++ b/libraries/avatars/src/HandData.cpp @@ -67,11 +67,12 @@ void HandData::getLeftRightPalmIndices(int& leftPalmIndex, int& rightPalmIndex) } PalmData::PalmData(HandData* owningHandData) : -_rawRotation(0, 0, 0, 1), -_rawPosition(0, 0, 0), -_rawNormal(0, 1, 0), -_rawVelocity(0, 0, 0), -_rotationalVelocity(0, 0, 0), +_rawRotation(0.f, 0.f, 0.f, 1.f), +_rawPosition(0.f), +_rawNormal(0.f, 1.f, 0.f), +_rawVelocity(0.f), +_rotationalVelocity(0.f), +_totalPenetration(0.f), _controllerButtons(0), _isActive(false), _leapID(LEAPID_INVALID), diff --git a/libraries/avatars/src/HandData.h b/libraries/avatars/src/HandData.h index cdab9f71e9..0d1371b79d 100755 --- a/libraries/avatars/src/HandData.h +++ b/libraries/avatars/src/HandData.h @@ -168,6 +168,9 @@ public: void setRawVelocity(const glm::vec3& velocity) { _rawVelocity = velocity; } const glm::vec3& getRawVelocity() const { return _rawVelocity; } void addToPosition(const glm::vec3& delta); + + void addToPenetration(const glm::vec3& penetration) { _totalPenetration += penetration; } + void resolvePenetrations() { addToPosition(-_totalPenetration); _totalPenetration = glm::vec3(0.f); } void setTipPosition(const glm::vec3& position) { _tipPosition = position; } const glm::vec3 getTipPosition() const { return _owningHandData->leapPositionToWorldPosition(_tipPosition); } @@ -217,6 +220,7 @@ private: glm::vec3 _tipPosition; glm::vec3 _tipVelocity; + glm::vec3 _totalPenetration; // accumulator for per-frame penetrations int _controllerButtons; int _lastControllerButtons; float _trigger;