CCT.NUI.WPFSamples.VideoManipulationWindow.handDataSource_NewDataAvailable C# (CSharp) Method

handDataSource_NewDataAvailable() private method

private handDataSource_NewDataAvailable ( HandCollection data ) : void
data CCT.NUI.HandTracking.HandCollection
return void
        void handDataSource_NewDataAvailable(HandCollection data)
        {
            if (data.Count == 1)
            {
                var hand = data.Hands.First();
                if (hand.FingerCount >= 4)
                {
                    this.StopMode();
                }
                if (hand.FingerCount == 1)
                {
                    this.Select(hand.FingerPoints.First());
                }
            }
            if (data.Count == 2)
            {
                var leftHand = data.Hands.OrderBy(h => h.Location.X).First();
                var rightHand = data.Hands.OrderBy(h => h.Location.X).Last();
                if (leftHand.FingerCount == 2 && rightHand.FingerCount == 2)
                {
                    SurfaceMode(data);
                }
                else if (leftHand.FingerCount >= 4 && rightHand.FingerCount == 0)
                {
                    StopMode();
                }
                else if (leftHand.FingerCount >= 4 && rightHand.FingerCount >= 1)
                {
                    TimeShiftMode(rightHand);
                }
                else if (rightHand.FingerCount == 0 && leftHand.FingerCount == 0)
                {
                    isNew = true;
                    DisabeMoveMode();
                }
                else if (leftHand.FingerCount == 0)
                {
                    DisabeMoveMode();
                }
                else if (rightHand.FingerCount >= 4 && leftHand.FingerCount == 1)
                {
                    CancelMode(leftHand);
                }
            }
            else
            {
                isNew = true;                
            }
        }