From 4a58eeb810bdee721e44842477b15c5eb832e30c Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Fri, 23 Oct 2015 12:14:33 -0700 Subject: [PATCH] expose deltaRotation as part of MyAvatar.xxxHandPose --- interface/src/Application.cpp | 2 ++ interface/src/avatar/MyAvatar.cpp | 8 ++++---- libraries/avatars/src/HandData.h | 6 +++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 0a634425bc..dd04b89b66 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4851,8 +4851,10 @@ void Application::setPalmData(Hand* hand, const controller::Pose& pose, float de angularVelocity = glm::normalize(glm::axis(deltaRotation)); angularVelocity *= (rotationAngle / deltaTime); palm->setRawAngularVelocity(angularVelocity); + palm->setRawDeltaRotation(deltaRotation); // FIXME - do we really want both RawAngularVelocity and RawDeltaRotation } else { palm->setRawAngularVelocity(glm::vec3(0.0f)); + palm->setRawDeltaRotation(glm::quat()); } if (controller::InputDevice::getLowVelocityFilter()) { diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 6e08ca24cf..09f702eb83 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -600,28 +600,28 @@ controller::Pose MyAvatar::getLeftHandPose() const { const int LEFT_HAND = 0; auto palmData = getActivePalm(LEFT_HAND); return palmData ? controller::Pose(palmData->getPosition(), palmData->getRotation(), - palmData->getVelocity(), palmData->getRawAngularVelocityAsQuat()) : controller::Pose(); + palmData->getVelocity(), palmData->getRawDeltaRotation()) : controller::Pose(); } controller::Pose MyAvatar::getRightHandPose() const { const int RIGHT_HAND = 1; auto palmData = getActivePalm(RIGHT_HAND); return palmData ? controller::Pose(palmData->getPosition(), palmData->getRotation(), - palmData->getVelocity(), palmData->getRawAngularVelocityAsQuat()) : controller::Pose(); + palmData->getVelocity(), palmData->getRawDeltaRotation()) : controller::Pose(); } controller::Pose MyAvatar::getLeftHandTipPose() const { const int LEFT_HAND = 0; auto palmData = getActivePalm(LEFT_HAND); return palmData ? controller::Pose(palmData->getTipPosition(), palmData->getRotation(), - palmData->getTipVelocity(), palmData->getRawAngularVelocityAsQuat()) : controller::Pose(); + palmData->getTipVelocity(), palmData->getRawDeltaRotation()) : controller::Pose(); } controller::Pose MyAvatar::getRightHandTipPose() const { const int RIGHT_HAND = 1; auto palmData = getActivePalm(RIGHT_HAND); return palmData ? controller::Pose(palmData->getTipPosition(), palmData->getRotation(), - palmData->getTipVelocity(), palmData->getRawAngularVelocityAsQuat()) : controller::Pose(); + palmData->getTipVelocity(), palmData->getRawDeltaRotation()) : controller::Pose(); } // virtual diff --git a/libraries/avatars/src/HandData.h b/libraries/avatars/src/HandData.h index 7cc9faad3d..a194620f3a 100644 --- a/libraries/avatars/src/HandData.h +++ b/libraries/avatars/src/HandData.h @@ -101,9 +101,12 @@ public: void setRawPosition(const glm::vec3& pos) { _rawPosition = pos; } void setRawVelocity(const glm::vec3& velocity) { _rawVelocity = velocity; } const glm::vec3& getRawVelocity() const { return _rawVelocity; } + void setRawAngularVelocity(const glm::vec3& angularVelocity) { _rawAngularVelocity = angularVelocity; } const glm::vec3& getRawAngularVelocity() const { return _rawAngularVelocity; } - glm::quat getRawAngularVelocityAsQuat() const { return glm::quat(); } // FIXME + void setRawDeltaRotation(glm::quat rawDeltaRotation) { _rawDeltaRotation = rawDeltaRotation; } // FIXME, is this really what we want? + glm::quat getRawDeltaRotation() const { return _rawDeltaRotation; } + void addToPosition(const glm::vec3& delta); void addToPenetration(const glm::vec3& penetration) { _totalPenetration += penetration; } @@ -156,6 +159,7 @@ private: glm::vec3 _rawPosition; glm::vec3 _rawVelocity; glm::vec3 _rawAngularVelocity; + glm::quat _rawDeltaRotation; glm::quat _lastRotation; glm::vec3 _tipPosition;