From c970ff0c0cc60fefba2041d09d0fd0f4534dce16 Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Sun, 27 Sep 2015 18:25:28 -0700 Subject: [PATCH] Reset joint priorities back to 0 for new animation system. Added Rig::clearJointStatePriorities() to do this. --- libraries/animation/src/Rig.cpp | 10 +++++++++- libraries/animation/src/Rig.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index a0cb278ef3..192af54201 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -591,8 +591,10 @@ void Rig::updateAnimations(float deltaTime, glm::mat4 rootTransform) { _animVars.setTrigger(trigger); } + clearJointStatePriorities(); + // copy poses into jointStates - const float PRIORITY = 3.0f; + const float PRIORITY = 1.0f; for (size_t i = 0; i < poses.size(); i++) { setJointRotationInConstrainedFrame((int)i, glm::inverse(_animSkeleton->getRelativeBindPose(i).rot) * poses[i].rot, PRIORITY, false, 1.0f); } @@ -930,6 +932,12 @@ void Rig::updateVisibleJointStates() { } } +void Rig::clearJointStatePriorities() { + for (int i = 0; i < _jointStates.size(); i++) { + _jointStates[i].setAnimationPriority(0.0f); + } +} + void Rig::setJointVisibleTransform(int jointIndex, glm::mat4 newTransform) { if (jointIndex == -1 || jointIndex >= _jointStates.size()) { return; diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h index 90082ca38b..6dad58db87 100644 --- a/libraries/animation/src/Rig.h +++ b/libraries/animation/src/Rig.h @@ -172,6 +172,7 @@ public: bool getJointRotationInConstrainedFrame(int jointIndex, glm::quat& rotOut) const; glm::quat getJointDefaultRotationInParentFrame(int jointIndex); void updateVisibleJointStates(); + void clearJointStatePriorities(); virtual void updateJointState(int index, glm::mat4 rootTransform) = 0;