From c76af1ca12fa40c7863f12ea40580dfcb1728537 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 13 Nov 2013 13:58:14 -0800 Subject: [PATCH] Scratch that; didn't work. --- interface/src/avatar/SkeletonModel.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/SkeletonModel.cpp b/interface/src/avatar/SkeletonModel.cpp index bf4e2bb65b..64288effc4 100644 --- a/interface/src/avatar/SkeletonModel.cpp +++ b/interface/src/avatar/SkeletonModel.cpp @@ -176,10 +176,15 @@ void SkeletonModel::applyPalmData(int jointIndex, const QVector& fingerJoin float proportion = fingerIndices.size() / (float)fingerJointIndices.size(); for (int i = 0; i < fingerJointIndices.size(); i++) { int fingerIndex = fingerIndices.at(roundf(i * proportion)).index; + glm::vec3 fingerVector = palm.getFingers()[fingerIndex].getTipPosition() - + palm.getFingers()[fingerIndex].getRootPosition(); + int fingerJointIndex = fingerJointIndices.at(i); int fingertipJointIndex = fingertipJointIndices.at(i); - setJointPosition(fingertipJointIndex, palm.getFingers()[fingerIndex].getTipPosition(), - fingerJointIndex, true, -palm.getNormal()); + glm::vec3 jointVector = extractTranslation(geometry.joints.at(fingertipJointIndex).bindTransform) - + extractTranslation(geometry.joints.at(fingerJointIndex).bindTransform); + + setJointRotation(fingerJointIndex, rotationBetween(palmRotation * jointVector, fingerVector) * palmRotation, true); } }