CSKinectSkeletonApplication1.MainWindow.runtime_SkeletonFrameReady C# (CSharp) Метод

runtime_SkeletonFrameReady() приватный Метод

private runtime_SkeletonFrameReady ( object sender, Microsoft.Kinect.SkeletonFrameReadyEventArgs e ) : void
sender object
e Microsoft.Kinect.SkeletonFrameReadyEventArgs
Результат void
        void runtime_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            bool receivedData = false;

            using (SkeletonFrame SFrame = e.OpenSkeletonFrame())
            {
                if (SFrame == null)
                {
                    // The image processing took too long. More than 2 frames behind.
                }
                else
                {
                    skeletons = new Skeleton[SFrame.SkeletonArrayLength];
                    SFrame.CopySkeletonDataTo(skeletons);
                    receivedData = true;
                }
            }

            if (receivedData)
            {

                Skeleton currentSkeleton = (from s in skeletons
                                            where s.TrackingState == SkeletonTrackingState.Tracked
                                            select s).FirstOrDefault();

                if (currentSkeleton != null)
                {
                    SetEllipsePosition(head, currentSkeleton.Joints[JointType.Head]);
                    SetEllipsePosition(leftHand, currentSkeleton.Joints[JointType.HandLeft]);
                    SetEllipsePosition(elbowleft, currentSkeleton.Joints[JointType.ElbowLeft]);
                    SetEllipsePosition(rightHand, currentSkeleton.Joints[JointType.HandRight]);
                    SetEllipsePosition(elbowright, currentSkeleton.Joints[JointType.ElbowRight]);
                    SetEllipsePosition(shoulderleft, currentSkeleton.Joints[JointType.ShoulderLeft]);
                    SetEllipsePosition(shoulderright, currentSkeleton.Joints[JointType.ShoulderRight]);

                }
            }
        }