public Skeleton FilterSkeletonData(Skeleton newData)
{
//Process it and updates the StableSkeleton
SkeletonsBuffer.Value = newData;
SkeletonsBuffer.Next();
//Calculates the average skeleton from all those in the circular list
Skeleton stableSkeleton = new Skeleton();
stableSkeleton.TrackingState = SkeletonTrackingState.Tracked;
stableSkeleton.ClippedEdges = newData.ClippedEdges;
stableSkeleton.TrackingId = newData.TrackingId;
foreach (JointType joint in Enum.GetValues(typeof(JointType)))
{
Joint avgJoint = stableSkeleton.Joints[joint];
avgJoint.TrackingState = JointTrackingState.Tracked;
avgJoint.Position = GetAvgPosition(joint);
stableSkeleton.Joints[joint] = avgJoint;
}
StableSkeleton = stableSkeleton;
return StableSkeleton;
}