From aaf19db286b0cc075e593a2868fd1c8af7c168bc Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Tue, 23 Jun 2020 00:42:05 -0400 Subject: [PATCH 1/3] Debounce missing joint log spam to 30s intervals --- libraries/animation/src/AnimInverseKinematics.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libraries/animation/src/AnimInverseKinematics.cpp b/libraries/animation/src/AnimInverseKinematics.cpp index 621323575f..2eeec827ef 100644 --- a/libraries/animation/src/AnimInverseKinematics.cpp +++ b/libraries/animation/src/AnimInverseKinematics.cpp @@ -25,6 +25,7 @@ static const int MAX_TARGET_MARKERS = 30; static const float JOINT_CHAIN_INTERP_TIME = 0.5f; +static const int WARNING_DEBOUNCE_TIME = 30000; // 30 seconds static void lookupJointInfo(const AnimInverseKinematics::JointChainInfo& jointChainInfo, int indexA, int indexB, @@ -158,6 +159,16 @@ void AnimInverseKinematics::setTargetVars(const QString& jointName, const QStrin } } +bool debounceJointWarnings() { + static QTime last_call; + + if (last_call.elapsed() >= WARNING_DEBOUNCE_TIME || !last_call.isValid()) { + last_call.restart(); + return true; + } + return false; +} + void AnimInverseKinematics::computeTargets(const AnimVariantMap& animVars, std::vector& targets, const AnimPoseVec& underPoses) { _hipsTargetIndex = -1; @@ -172,7 +183,7 @@ void AnimInverseKinematics::computeTargets(const AnimVariantMap& animVars, std:: if (jointIndex >= 0) { // this targetVar has a valid joint --> cache the indices targetVar.jointIndex = jointIndex; - } else { + } else if (debounceJointWarnings()) { qCWarning(animation) << "AnimInverseKinematics could not find jointName" << targetVar.jointName << "in skeleton"; } } From 0ad7e25b494c773843244c7bff7d346ec7d27a27 Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Fri, 3 Jul 2020 14:40:56 -0400 Subject: [PATCH 2/3] Revise names. --- libraries/animation/src/AnimInverseKinematics.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/animation/src/AnimInverseKinematics.cpp b/libraries/animation/src/AnimInverseKinematics.cpp index 2eeec827ef..a011c1249f 100644 --- a/libraries/animation/src/AnimInverseKinematics.cpp +++ b/libraries/animation/src/AnimInverseKinematics.cpp @@ -25,7 +25,9 @@ static const int MAX_TARGET_MARKERS = 30; static const float JOINT_CHAIN_INTERP_TIME = 0.5f; -static const int WARNING_DEBOUNCE_TIME = 30000; // 30 seconds + +static QTime debounceJointWarningsClock; +static const int JOINT_WARNING_DEBOUNCE_TIME = 30000; // 30 seconds static void lookupJointInfo(const AnimInverseKinematics::JointChainInfo& jointChainInfo, int indexA, int indexB, @@ -160,10 +162,8 @@ void AnimInverseKinematics::setTargetVars(const QString& jointName, const QStrin } bool debounceJointWarnings() { - static QTime last_call; - - if (last_call.elapsed() >= WARNING_DEBOUNCE_TIME || !last_call.isValid()) { - last_call.restart(); + if (debounceJointWarningsClock.elapsed() >= JOINT_WARNING_DEBOUNCE_TIME || !debounceJointWarningsClock.isValid()) { + debounceJointWarningsClock.restart(); return true; } return false; From 44e5bbb591d197afed1c814aab8e86baf7abea7d Mon Sep 17 00:00:00 2001 From: Kasen IO Date: Sat, 4 Jul 2020 00:48:03 -0400 Subject: [PATCH 3/3] Add init for timer to constructor. --- libraries/animation/src/AnimInverseKinematics.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/animation/src/AnimInverseKinematics.cpp b/libraries/animation/src/AnimInverseKinematics.cpp index a011c1249f..2fd52ee036 100644 --- a/libraries/animation/src/AnimInverseKinematics.cpp +++ b/libraries/animation/src/AnimInverseKinematics.cpp @@ -94,6 +94,7 @@ AnimInverseKinematics::IKTargetVar::IKTargetVar(const IKTargetVar& orig) : } AnimInverseKinematics::AnimInverseKinematics(const QString& id) : AnimNode(AnimNode::Type::InverseKinematics, id) { + debounceJointWarningsClock.start(); } AnimInverseKinematics::~AnimInverseKinematics() { @@ -162,7 +163,7 @@ void AnimInverseKinematics::setTargetVars(const QString& jointName, const QStrin } bool debounceJointWarnings() { - if (debounceJointWarningsClock.elapsed() >= JOINT_WARNING_DEBOUNCE_TIME || !debounceJointWarningsClock.isValid()) { + if (debounceJointWarningsClock.elapsed() >= JOINT_WARNING_DEBOUNCE_TIME) { debounceJointWarningsClock.restart(); return true; }