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 event EventHandler GestureRecognized;
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)
{
KnownGestures = (List<BaseGesture>)factory.CreateGestures();
var gestures = (List<BaseGesture>)factory.CreateGestures();
foreach (var gesture in gestures)
{
AddGesture(gesture);
}
}
public static void AddGesture(BaseGesture gesture)
{

@ -9,16 +9,31 @@ namespace KinectUtils
{
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);
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
}
}
}

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

Loading…
Cancel
Save