public Message(string arg, int val, Jointure[] array) { str = arg; id = val; arr = array; }
private void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { SkeletonFrame skeletonFrame = e.SkeletonFrame; uint skel = 0; Message[] skeletons = new Message[2]; int iSkeleton = 0; // skeleton.Children.Clear(); foreach (SkeletonData data in skeletonFrame.Skeletons) { if (SkeletonTrackingState.Tracked == data.TrackingState) { Jointure HipCenter = new Jointure("hipcenter", data.Joints[JointID.HipCenter]); Jointure Spine = new Jointure("spine", data.Joints[JointID.Spine]); Jointure ShoulderCenter = new Jointure("shouldercenter", data.Joints[JointID.ShoulderCenter]); Jointure Head = new Jointure("head", data.Joints[JointID.Head]); Jointure ShoulderLeft = new Jointure("shoulderleft", data.Joints[JointID.ShoulderLeft]); Jointure ElbowLeft = new Jointure("elbowleft", data.Joints[JointID.ElbowLeft]); Jointure WristLeft = new Jointure("wristleft", data.Joints[JointID.WristLeft]); Jointure HandLeft = new Jointure("handleft", data.Joints[JointID.HandLeft]); Jointure ShoulderRight = new Jointure("shoulderight", data.Joints[JointID.ShoulderRight]); Jointure ElbowRight = new Jointure("elbowright", data.Joints[JointID.ElbowRight]); Jointure WristRight = new Jointure("wristright", data.Joints[JointID.WristRight]); Jointure HandRight = new Jointure("handright", data.Joints[JointID.HandRight]); Jointure HipLeft = new Jointure("hipleft", data.Joints[JointID.HipLeft]); Jointure KneeLeft = new Jointure("kneeleft", data.Joints[JointID.KneeLeft]); Jointure AnkleLeft = new Jointure("ankleleft", data.Joints[JointID.AnkleLeft]); Jointure FootLeft = new Jointure("footleft", data.Joints[JointID.FootLeft]); Jointure HipRight = new Jointure("hipright", data.Joints[JointID.HipRight]); Jointure KneeRight = new Jointure("kneeright", data.Joints[JointID.KneeRight]); Jointure AnkleRight = new Jointure("ankleright", data.Joints[JointID.AnkleRight]); Jointure FootRight = new Jointure("footright", data.Joints[JointID.FootRight]); Jointure[] array = new Jointure[20]; array[0] = HipCenter; array[1] = Spine; array[2] = Head; array[3] = ShoulderLeft; array[4] = ElbowLeft; array[5] = WristLeft; array[6] = HandLeft; array[7] = ShoulderCenter; array[8] = ShoulderRight; array[9] = ElbowRight; array[10] = WristRight; array[11] = HandRight; array[12] = HipLeft; array[13] = KneeLeft; array[14] = AnkleLeft; array[15] = FootLeft; array[16] = HipRight; array[17] = KneeRight; array[18] = AnkleRight; array[19] = FootRight; string message = ""; // Message info = new Message(message, 0); for (int i = 0; i < array.Length; i++) { message += "joint/"; message += array[i].name.ToString(); message += "/"; message += array[i].x.ToString(); message += "/"; message += array[i].y.ToString(); message += "/"; message += array[i].z.ToString(); } Message info = new Message(message, data.TrackingID, array); // info.Initialize(message, data.TrackingID); skeletons[skel] = info; skel++; } // if SkeletonTrackingState.Tracked == data.TrackingState iSkeleton++; } // for each skeleton uint loop = 0; Int32[] temp = new Int32[2]; foreach (Message i in skeletons) { if (i == null) { temp[loop] = 0; } else { temp[loop] = i.GetID(); } loop++; } uint index; #region if : dispatchSkeleton if (temp[0] == 0) { index = 1; dispatchSkeleton(skeletons[index]); return; } if (temp[1] == 0) { index = 0; dispatchSkeleton(skeletons[index]); return; } if (temp[0] < temp[1]) { index = 0; dispatchSkeleton(skeletons[index]); return; } if (temp[1] < temp[0]) { index = 1; dispatchSkeleton(skeletons[index]); return; } #endregion }