From af2b3bb9d59fcfd2e8e3b20b7b467fa4ee06eb0a Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Mon, 9 Nov 2015 16:56:49 -0800 Subject: [PATCH] MyAvatar: removed priority, hold and maskedJoints from playAnimation js call --- examples/kneel.js | 6 ++---- interface/src/avatar/MyAvatar.cpp | 8 +++----- interface/src/avatar/MyAvatar.h | 4 +--- libraries/animation/src/Rig.cpp | 11 ++++++----- libraries/animation/src/Rig.h | 3 +-- 5 files changed, 13 insertions(+), 19 deletions(-) diff --git a/examples/kneel.js b/examples/kneel.js index 2ba029677a..5dd772c507 100644 --- a/examples/kneel.js +++ b/examples/kneel.js @@ -53,13 +53,11 @@ function kneelDown() { kneeling = true; var playbackRate = 30; // 30 fps is normal speed. - var priority = 0; // obsolete var loopFlag = false; - var holdFlag = false; // obsolete var startFrame = 0; var endFrame = 82; - var maskedJoints = []; // obsolete - MyAvatar.startAnimation(KNEEL_ANIM_URL, playbackRate, priority, loopFlag, holdFlag, startFrame, endFrame, maskedJoints); + + MyAvatar.startAnimation(KNEEL_ANIM_URL, playbackRate, loopFlag, startFrame, endFrame); Overlays.editOverlay(kneelDownButton, { visible: false }); Overlays.editOverlay(standUpButton, { visible: true }); diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 57af9e732d..ab8b78d6e3 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -657,15 +657,13 @@ void MyAvatar::loadLastRecording() { _player->loadRecording(_recorder->getRecording()); } -void MyAvatar::startAnimation(const QString& url, float fps, float priority, - bool loop, bool hold, float firstFrame, float lastFrame, const QStringList& maskedJoints) { +void MyAvatar::startAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame) { if (QThread::currentThread() != thread()) { QMetaObject::invokeMethod(this, "startAnimation", Q_ARG(const QString&, url), Q_ARG(float, fps), - Q_ARG(float, priority), Q_ARG(bool, loop), Q_ARG(bool, hold), Q_ARG(float, firstFrame), - Q_ARG(float, lastFrame), Q_ARG(const QStringList&, maskedJoints)); + Q_ARG(bool, loop), Q_ARG(float, firstFrame), Q_ARG(float, lastFrame)); return; } - _rig->startAnimation(url, fps, priority, loop, hold, firstFrame, lastFrame, maskedJoints); + _rig->startAnimation(url, fps, loop, firstFrame, lastFrame); } void MyAvatar::startAnimationByRole(const QString& role, const QString& url, float fps, float priority, diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index d6f51636f3..0a6fdb4af2 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -118,9 +118,7 @@ public: AnimationHandlePointer addAnimationHandle() { return _rig->createAnimationHandle(); } void removeAnimationHandle(const AnimationHandlePointer& handle) { _rig->removeAnimationHandle(handle); } /// Allows scripts to run animations. - Q_INVOKABLE void startAnimation(const QString& url, float fps = 30.0f, float priority = 1.0f, bool loop = false, - bool hold = false, float firstFrame = 0.0f, - float lastFrame = FLT_MAX, const QStringList& maskedJoints = QStringList()); + Q_INVOKABLE void startAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame); /// Stops an animation as identified by a URL. Q_INVOKABLE void stopAnimation(const QString& url); diff --git a/libraries/animation/src/Rig.cpp b/libraries/animation/src/Rig.cpp index 72a1eeae5c..e0369b23a4 100644 --- a/libraries/animation/src/Rig.cpp +++ b/libraries/animation/src/Rig.cpp @@ -45,13 +45,9 @@ void Rig::removeAnimationHandle(const AnimationHandlePointer& handle) { _animationHandles.removeOne(handle); } -void Rig::startAnimation(const QString& url, float fps, float priority, - bool loop, bool hold, float firstFrame, float lastFrame, const QStringList& maskedJoints) { +void Rig::startAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame) { if (_enableAnimGraph) { - // NOTE: mask joints are unsupported, priority is now meaningless, hold flag is essentially always true - // when using the AnimGraph system. - // find an unused AnimClip clipNode std::shared_ptr clip; if (_userAnimState == UserAnimState::None || _userAnimState == UserAnimState::B) { @@ -79,6 +75,10 @@ void Rig::startAnimation(const QString& url, float fps, float priority, } else { + float priority = 1.0f; + bool hold = true; + QStringList maskedJoints; + // This is different than startAnimationByRole, in which we use the existing values if the animation already exists. // Here we reuse the animation handle if possible, but in any case, we set the values to those given (or defaulted). AnimationHandlePointer handle = nullptr; @@ -105,6 +105,7 @@ void Rig::startAnimation(const QString& url, float fps, float priority, AnimationHandlePointer Rig::addAnimationByRole(const QString& role, const QString& url, float fps, float priority, bool loop, bool hold, float firstFrame, float lastFrame, const QStringList& maskedJoints, bool startAutomatically) { + // check for a configured animation for the role //qCDebug(animation) << "addAnimationByRole" << role << url << fps << priority << loop << hold << firstFrame << lastFrame << maskedJoints << startAutomatically; foreach (const AnimationHandlePointer& candidate, _animationHandles) { diff --git a/libraries/animation/src/Rig.h b/libraries/animation/src/Rig.h index e086b81e39..f36dd19dda 100644 --- a/libraries/animation/src/Rig.h +++ b/libraries/animation/src/Rig.h @@ -113,8 +113,7 @@ public: void deleteAnimations(); void destroyAnimGraph(); const QList& getAnimationHandles() const { return _animationHandles; } - void startAnimation(const QString& url, float fps = 30.0f, float priority = 1.0f, bool loop = false, - bool hold = false, float firstFrame = 0.0f, float lastFrame = FLT_MAX, const QStringList& maskedJoints = QStringList()); + void startAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame); void stopAnimation(const QString& url); void startAnimationByRole(const QString& role, const QString& url = QString(), float fps = 30.0f, float priority = 1.0f, bool loop = false, bool hold = false, float firstFrame = 0.0f,