Update(dev): posture works

pull/21/head
Johan LACHENAL 1 year ago
parent b488e84f14
commit 5df113740e

@ -16,11 +16,15 @@ namespace KinectUtils
static private Body[] bodies; static private Body[] bodies;
static event EventHandler GestureRecognized; static event EventHandler GestureRecognized;
static KinectManager KinectManager { get; set; } static KinectManager KinectManager { get; set; }
static List<BaseGesture> KnownGestures { get; set; } static List<BaseGesture> KnownGestures { get; set; } = new List<BaseGesture>();
public static void AddGestures(IGestureFactory factory) public static void AddGestures(IGestureFactory factory)
{ {
KnownGestures = (List<BaseGesture>)factory.CreateGestures(); var gestures = (List<BaseGesture>)factory.CreateGestures();
foreach (var gesture in gestures)
{
AddGesture(gesture);
}
} }
public static void AddGesture(BaseGesture gesture) public static void AddGesture(BaseGesture gesture)
{ {

@ -9,16 +9,31 @@ namespace KinectUtils
{ {
public abstract class Posture : BaseGesture public abstract class Posture : BaseGesture
{ {
// Déclaration des événements
public event Action<Body> PostureRecognized;
public event Action<Body> PostureUnrecognized;
private bool wasRecognized = false; // Pour garder l'état de reconnaissance précédent
protected abstract bool TestPosture(Body body); protected abstract bool TestPosture(Body body);
public override void TestGesture(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 // La posture est reconnue et ne l'était pas au frame précédent
OnGestureRecognized(body); 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
}
} }
} }

@ -13,11 +13,10 @@ namespace MyGesturesBank
{ {
return new List<BaseGesture> return new List<BaseGesture>
{ {
new SwipeRightHand(), //new SwipeRightHand(),
new PostureHandsOnHead(), new PostureHandsOnHead(),
new PostureHandUp(), new PostureHandUp(),
new RightHandUp(), new RightHandUp(),
new SwipeRightHand(),
new TwoHandsDragon(), new TwoHandsDragon(),
// Ajoutez d'autres gestes ici // Ajoutez d'autres gestes ici
}; };

Loading…
Cancel
Save