diff --git a/libraries/shared/src/SimpleMovingAverage.h b/libraries/shared/src/SimpleMovingAverage.h index 2559bb36ec..783c13d4b1 100644 --- a/libraries/shared/src/SimpleMovingAverage.h +++ b/libraries/shared/src/SimpleMovingAverage.h @@ -61,7 +61,7 @@ public: const float WEIGHTING = 1.0f / (float)MAX_NUM_SAMPLES; const float ONE_MINUS_WEIGHTING = 1.0f - WEIGHTING; std::atomic numSamples{ 0 }; - T average; + std::atomic average; void clear() { numSamples = 0; diff --git a/plugins/hifiKinect/src/KinectPlugin.cpp b/plugins/hifiKinect/src/KinectPlugin.cpp index 8f10efed86..a6bf5df9dd 100644 --- a/plugins/hifiKinect/src/KinectPlugin.cpp +++ b/plugins/hifiKinect/src/KinectPlugin.cpp @@ -496,21 +496,21 @@ void KinectPlugin::ProcessBody(INT64 time, int bodyCount, IBody** bodies) { static const quat kinectToHandRight = glm::angleAxis(-PI / 2.0f, Vectors::UNIT_Y); // add moving average of orientation quaternion glm::quat jointSample = jointOrientation * kinectToHandRight; - if (glm::dot(jointSample, _RightHandOrientationAverage.average) < 0) { + if (glm::dot(jointSample, _RightHandOrientationAverage.getAverage()) < 0) { jointSample = -jointSample; } _RightHandOrientationAverage.addSample(jointSample); - _joints[j].orientation = glm::normalize(_RightHandOrientationAverage.average); + _joints[j].orientation = glm::normalize(_RightHandOrientationAverage.getAverage()); } else if (joints[j].JointType == JointType_HandLeft) { // To transform from Kinect to our LEFT Hand.... Postive 90 deg around Y static const quat kinectToHandLeft = glm::angleAxis(PI / 2.0f, Vectors::UNIT_Y); // add moving average of orientation quaternion glm::quat jointSample = jointOrientation * kinectToHandLeft; - if (glm::dot(jointSample, _LeftHandOrientationAverage.average) < 0) { + if (glm::dot(jointSample, _LeftHandOrientationAverage.getAverage()) < 0) { jointSample = -jointSample; } _LeftHandOrientationAverage.addSample(jointSample); - _joints[j].orientation = glm::normalize(_LeftHandOrientationAverage.average); + _joints[j].orientation = glm::normalize(_LeftHandOrientationAverage.getAverage()); } else { _joints[j].orientation = jointOrientation; } diff --git a/plugins/hifiKinect/src/KinectPlugin.h b/plugins/hifiKinect/src/KinectPlugin.h index 73cc9f4103..68ba1a7b86 100644 --- a/plugins/hifiKinect/src/KinectPlugin.h +++ b/plugins/hifiKinect/src/KinectPlugin.h @@ -62,8 +62,8 @@ public: private: // add variables for moving average - MovingAverage _LeftHandOrientationAverage; - MovingAverage _RightHandOrientationAverage; + ThreadSafeMovingAverage _LeftHandOrientationAverage; + ThreadSafeMovingAverage _RightHandOrientationAverage; protected: