|
|
|
@ -10,28 +10,50 @@ namespace MyGesturesBank
|
|
|
|
|
{
|
|
|
|
|
public class SwipeRightHand : Gesture
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
private float previousX = float.NaN;
|
|
|
|
|
|
|
|
|
|
protected override bool TestInitialConditions(Body body)
|
|
|
|
|
{
|
|
|
|
|
// Implémentez la logique pour vérifier les conditions initiales du balayage à droite
|
|
|
|
|
return false;
|
|
|
|
|
var handRight = body.Joints[JointType.HandRight].Position;
|
|
|
|
|
var shoulderRight = body.Joints[JointType.ShoulderRight].Position;
|
|
|
|
|
|
|
|
|
|
// Conditions initiales : main droite au niveau ou à droite de l'épaule droite, mais pas trop éloignée
|
|
|
|
|
return handRight.X >= shoulderRight.X && handRight.X - shoulderRight.X < 0.5f;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override bool TestPosture(Body body)
|
|
|
|
|
{
|
|
|
|
|
// Implémentez la vérification de la posture pour le balayage à droite
|
|
|
|
|
return false;
|
|
|
|
|
var handRight = body.Joints[JointType.HandRight].Position;
|
|
|
|
|
var head = body.Joints[JointType.Head].Position;
|
|
|
|
|
|
|
|
|
|
// La main droite ne doit pas être plus haute que la tête
|
|
|
|
|
return handRight.Y <= head.Y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override bool TestRunningGesture(Body body)
|
|
|
|
|
{
|
|
|
|
|
// Implémentez la dynamique du geste de balayage à droite
|
|
|
|
|
var handRight = body.Joints[JointType.HandRight].Position.X;
|
|
|
|
|
|
|
|
|
|
if (!float.IsNaN(previousX))
|
|
|
|
|
{
|
|
|
|
|
// Vérifie si la main droite se déplace vers la droite
|
|
|
|
|
bool isMovingRight = handRight > previousX;
|
|
|
|
|
previousX = handRight;
|
|
|
|
|
return isMovingRight;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
previousX = handRight;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override bool TestEndConditions(Body body)
|
|
|
|
|
{
|
|
|
|
|
// Vérifiez si les conditions de fin du geste de balayage à droite sont remplies
|
|
|
|
|
return false;
|
|
|
|
|
var handRight = body.Joints[JointType.HandRight].Position;
|
|
|
|
|
var spineBase = body.Joints[JointType.SpineBase].Position;
|
|
|
|
|
|
|
|
|
|
// Condition de fin : la main droite est bien à droite de la base de la colonne vertébrale
|
|
|
|
|
return handRight.X > spineBase.X + 0.5f; // Ajustez cette valeur selon le besoin
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|