private void testerEntréesEtSortiesDePostures(PostureAbstraite postureActuelle, PostureAbstraite postureReconnue, int numSquelette) { if (postureReconnue == null) { if (postureActuelle != null) { onPostureChangée( new PostureChangéeEventArgs(postureActuelle.Nom, false, true, numSquelette)); } } else { if (postureActuelle == null) { onPostureChangée( new PostureChangéeEventArgs(postureReconnue.Nom, true, false, numSquelette)); } else if (!postureActuelle.Equals(postureReconnue)) { onPostureChangée( new PostureChangéeEventArgs(postureActuelle.Nom, false, true, numSquelette)); onPostureChangée( new PostureChangéeEventArgs(postureReconnue.Nom, true, false, numSquelette)); } } }
private void OnSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { using (SkeletonFrame frame = e.OpenSkeletonFrame()) { frame.CopySkeletonDataTo(tabSquelettes); for (int i = 0; i < tabSquelettes.Length && i < maxSquelettes; i++) { PostureAbstraite postureReconnue = getPostureReconnue(tabSquelettes[i]); testerEntréesEtSortiesDePostures(postureActuellesParSquelette[i], postureReconnue, i); postureActuellesParSquelette[i] = postureReconnue; } } }
/// <summary> /// Retirer une posture de la liste des postures à reconnaître. /// </summary> /// <param name="posture"></param> public void retirerPosture(PostureAbstraite posture) { postures.Remove(posture); }
/// <summary> /// Ajouter une posture à reconnaître. /// </summary> /// <param name="posture">La posture en question.</param> public void ajouterPosture(PostureAbstraite posture) { postures.Add(posture); }