Kinect.KinectManager.Update C# (CSharp) Method

Update() public method

public Update ( ) : void
return void
        void Update()
        {
            if (kinectInitialized)
            {
                // check user limits and update sensor data
                bLimitedUsers = maxTrackedUsers < 6 || minUserDistance > 0.5f || maxUserDistance != 0f;
                KinectInterop.UpdateSensorData(sensorData);

                if (useMultiSourceReader)
                {
                    KinectInterop.GetMultiSourceFrame(sensorData);
                }

                // poll color map
                if (computeColorMap)
                {
                    if (KinectInterop.PollColorFrame(sensorData))
                    {
                        UpdateColorMap();
                    }
                }

                // poll user map
                if (computeUserMap)
                {
                    if (KinectInterop.PollDepthFrame(sensorData, bLimitedUsers, dictUserIdToIndex.Values))
                    {
                        UpdateUserMap();
                    }
                }

                // poll infrared map
                if (computeInfraredMap)
                {
                    if (KinectInterop.PollInfraredFrame(sensorData))
                    {
                        UpdateInfraredMap();
                    }
                }

                // poll or play body frame
                bool bNewBodyFrame = false;
                if (sensorData == null || !sensorData.isPlayModeEnabled)
                {
                    bNewBodyFrame = KinectInterop.PollBodyFrame(sensorData, ref bodyFrame, ref kinectToWorld);
                }
                else
                {
                    if (sensorData.playModeData.Length != 0)
                    {
                        bNewBodyFrame = KinectInterop.SetBodyFrameFromCsv(sensorData.playModeData, sensorData, ref bodyFrame, ref kinectToWorld);
                        sensorData.playModeData = string.Empty;
                    }
                }

                // process the body frame
                if (bNewBodyFrame)
                {
                    // filter the tracked joint positions
                    if (smoothing != Smoothing.None)
                    {
                        jointPositionFilter.UpdateFilter(ref bodyFrame);
                    }

                    ProcessBodyFrameData();
                }

                if (useMultiSourceReader)
                {
                    KinectInterop.FreeMultiSourceFrame(sensorData);
                }

                // update the avatars
                if (!lateUpdateAvatars)
                {
                    foreach (AvatarController controller in avatarControllers)
                    {
                        //int userIndex = controller ? controller.playerIndex : -1;
                        Int64 userId = controller ? controller.playerId : 0;

                        //if((userIndex >= 0) && (userIndex < alUserIds.Count))
                        if (userId != 0 && dictUserIdToIndex.ContainsKey(userId))
                        {
                            //Int64 userId = alUserIds[userIndex];
                            controller.UpdateAvatar(userId);
                        }
                    }
                }

                // check for gestures
                foreach (Int64 userId in alUserIds)
                {
                    if (!playerGesturesData.ContainsKey(userId))
                        continue;

                    // Check for player's gestures
                    CheckForGestures(userId);

                    // Check for complete gestures
                    List<KinectGestures.GestureData> gesturesData = playerGesturesData[userId];
                    int userIndex = GetUserIndexById(userId);

                    foreach (KinectGestures.GestureData gestureData in gesturesData)
                    {
                        if (gestureData.complete)
                        {
                            //						if(gestureData.gesture == KinectGestures.Gestures.Click)
                            //						{
                            //							if(controlMouseCursor)
                            //							{
                            //								MouseControl.MouseClick();
                            //							}
                            //						}

                            foreach (KinectGestures.GestureListenerInterface listener in gestureListeners)
                            {
                                if (listener != null && listener.GestureCompleted(userId, userIndex, gestureData.gesture, (KinectInterop.JointType)gestureData.joint, gestureData.screenPos))
                                {
                                    ResetPlayerGestures(userId);
                                }
                            }
                        }
                        else if (gestureData.cancelled)
                        {
                            foreach (KinectGestures.GestureListenerInterface listener in gestureListeners)
                            {
                                if (listener != null && listener.GestureCancelled(userId, userIndex, gestureData.gesture, (KinectInterop.JointType)gestureData.joint))
                                {
                                    ResetGesture(userId, gestureData.gesture);
                                }
                            }
                        }
                        else if (gestureData.progress >= 0.1f)
                        {
                            //						if((gestureData.gesture == KinectGestures.Gestures.RightHandCursor || 
                            //						    gestureData.gesture == KinectGestures.Gestures.LeftHandCursor) && 
                            //						   gestureData.progress >= 0.5f)
                            //						{
                            //							if(handCursor != null)
                            //							{
                            //								handCursor.transform.position = Vector3.Lerp(handCursor.transform.position, gestureData.screenPos, 3 * Time.deltaTime);
                            //							}
                            //							
                            //							if(controlMouseCursor)
                            //							{
                            //								MouseControl.MouseMove(gestureData.screenPos);
                            //							}
                            //						}

                            foreach (KinectGestures.GestureListenerInterface listener in gestureListeners)
                            {
                                if (listener != null)
                                {
                                    listener.GestureInProgress(userId, userIndex, gestureData.gesture, gestureData.progress,
                                                               (KinectInterop.JointType)gestureData.joint, gestureData.screenPos);
                                }
                            }
                        }
                    }
                }

            }
        }
KinectManager