private void ReaderThread() { while (this.shouldRun) { try { this.context.WaitOneUpdateAll(this.depth); } catch (Exception) { } //lock (this) try { int[] users = this.userGenerator.GetUsers(); foreach (int user in users) { Point3D com = this.userGenerator.GetCoM(user); com = this.depth.ConvertRealWorldToProjective(com); // NiteKinectUserState state = NiteKinectUserState.Unknown; if (this.skeletonCapbility.IsTracking(user)) { state = NiteKinectUserState.Tracking; // updatejoints(user); // NiteKinectUserEventData eventdata = new NiteKinectUserEventData(new NiteKinectUserData(user, state, com) { UserSkelton = joints[user] }); if (DataReceived != null) { DataReceived(this, new DataReceivedEventHandler() { PluginData = eventdata }); } } else { if (this.skeletonCapbility.IsCalibrating(user)) { state = NiteKinectUserState.Calibrating; } else { state = NiteKinectUserState.LookingForPose; } // NiteKinectUserEventData eventdata = new NiteKinectUserEventData(new NiteKinectUserData(user, state, com)); if (DataReceived != null) { DataReceived(this, new DataReceivedEventHandler() { PluginData = eventdata }); } } } } catch { } } }
public NiteKinectUserData(int uid, NiteKinectUserState ustate, Point3D ulocation) { UserId = uid; UserState = ustate; UserLocation = ulocation; }