diff --git a/Sources/KinectUtils/GestureManager.cs b/Sources/KinectUtils/GestureManager.cs index 1831e27..ddce0a3 100644 --- a/Sources/KinectUtils/GestureManager.cs +++ b/Sources/KinectUtils/GestureManager.cs @@ -16,11 +16,15 @@ namespace KinectUtils static private Body[] bodies; static event EventHandler GestureRecognized; static KinectManager KinectManager { get; set; } - static List KnownGestures { get; set; } + static List KnownGestures { get; set; } = new List(); public static void AddGestures(IGestureFactory factory) { - KnownGestures = (List)factory.CreateGestures(); + var gestures = (List)factory.CreateGestures(); + foreach (var gesture in gestures) + { + AddGesture(gesture); + } } public static void AddGesture(BaseGesture gesture) { diff --git a/Sources/KinectUtils/Posture.cs b/Sources/KinectUtils/Posture.cs index d64b672..34c6a30 100644 --- a/Sources/KinectUtils/Posture.cs +++ b/Sources/KinectUtils/Posture.cs @@ -9,16 +9,31 @@ namespace KinectUtils { public abstract class Posture : BaseGesture { + // Déclaration des événements + public event Action PostureRecognized; + public event Action PostureUnrecognized; + + private bool wasRecognized = false; // Pour garder l'état de reconnaissance précédent + protected abstract bool TestPosture(Body body); public override void TestGesture(Body body) { - if (TestPosture(body)) + bool isRecognized = TestPosture(body); // Teste la posture actuelle + + if (isRecognized && !wasRecognized) { - // Posture is recognized - OnGestureRecognized(body); + // La posture est reconnue et ne l'était pas au frame précédent + PostureRecognized?.Invoke(body); + Console.WriteLine(GestureName); + } + else if (!isRecognized && wasRecognized) + { + // La posture n'est plus reconnue alors qu'elle l'était au frame précédent + PostureUnrecognized?.Invoke(body); } - } + wasRecognized = isRecognized; // Mise à jour de l'état de reconnaissance pour le prochain frame + } } } diff --git a/Sources/LibMyGesturesBank/AllGesturesFactory.cs b/Sources/LibMyGesturesBank/AllGesturesFactory.cs index 0df7c54..5802cfe 100644 --- a/Sources/LibMyGesturesBank/AllGesturesFactory.cs +++ b/Sources/LibMyGesturesBank/AllGesturesFactory.cs @@ -13,11 +13,10 @@ namespace MyGesturesBank { return new List { - new SwipeRightHand(), + //new SwipeRightHand(), new PostureHandsOnHead(), new PostureHandUp(), new RightHandUp(), - new SwipeRightHand(), new TwoHandsDragon(), // Ajoutez d'autres gestes ici };