Example #1
0
        private void SetTrackedSkeleton(int matchingSkeleton)
        {
            if (matchingSkeleton == _activeTID)
            {
                return;
            }
            if (matchingSkeleton != -1 && _kinect != null && _kinect.GetSensor() != null)
            {
                _kinect.GetSensor().SkeletonStream.ChooseSkeletons(matchingSkeleton);

                if (Strategy.Equals(TrackingEngine.CLOSEST_SKELETON) || (_activeUser != null && _activeUser.Attempts >= User.MAX_ATTEMPTS))
                {
                    Log.Info("Closest skeleton found. Starting tracking of id : " + matchingSkeleton);
                    _kinectHandler.StartTracking(matchingSkeleton);
                    _kinectHandler.TrackingStarted(matchingSkeleton);
                }

                _activeTID = matchingSkeleton;
            }
            else
            {
                Log.Info("No suitable skeleton found for tracking. Tracking stopped");
                _kinectHandler.StopTracking(_activeTID);
                _kinectHandler.TrackingStopped(matchingSkeleton);
                _activeTID = -1;
            }
        }