middleware/Tracking/Gestures/SwipeDetector.cs
changeset 37 37ebedd84755
parent 27 6c08d4d7219e
--- a/middleware/Tracking/Gestures/SwipeDetector.cs	Wed May 30 10:22:46 2012 +0200
+++ b/middleware/Tracking/Gestures/SwipeDetector.cs	Thu Jun 21 16:52:56 2012 +0200
@@ -65,12 +65,14 @@
             for (int i = localHistory.Count - indexesToCheck + 1; i < localHistory.Count; i++)
             {
                 //Si la position Y de la main est plus haute que la tête
-                //OU si la position Y de la main est plus basse que la hanche
+                //OU si la position Y de la main est plus basse que la hanche (les genoux)
                 //OU si la nouvelle position X de la main est à droite de la précédente
                 //OU si la nouvelle position Y de la main est plus éloignée de la distance N par rapport à la première position Y
                 //Alors on retourne faux.
                 if (localHistory[i][(int)JointType.HandRight].Position.Y < localHistory[i][(int)JointType.Head].Position.Y ||
-                localHistory[i][(int)JointType.HandRight].Position.Y > localHistory[i][(int)JointType.HipCenter].Position.Y ||
+                //localHistory[i][(int)JointType.HandRight].Position.Y > localHistory[i][(int)JointType.HipCenter].Position.Y ||
+                localHistory[i][(int)JointType.HandRight].Position.Y > localHistory[i][(int)JointType.KneeLeft].Position.Y ||
+                localHistory[i][(int)JointType.HandRight].Position.Y > localHistory[i][(int)JointType.KneeRight].Position.Y ||
                 localHistory[i][(int)JointType.HandRight].Position.X > localHistory[i - 1][(int)JointType.HandRight].Position.X ||
                 Math.Abs(localHistory[i][(int)JointType.HandRight].Position.Y - startPoint.Y) > refDistance / 2)
                     return false;
@@ -120,12 +122,14 @@
             for (int i = localHistory.Count - indexesToCheck + 1; i < localHistory.Count; i++)
             {
                 //Si la position Y de la main est plus haute que la tête
-                //OU si la position Y de la main est plus basse que la hanche
+                //OU si la position Y de la main est plus basse que la hanche (les genoux)
                 //OU si la nouvelle position X de la main est à gauche de la précédente
                 //OU si la nouvelle position Y de la main est plus éloignée de la distance N par rapport à la première position Y
                 //Alors on retourne faux.
                 if (localHistory[i][(int)JointType.HandLeft].Position.Y < localHistory[i][(int)JointType.Head].Position.Y ||
-                localHistory[i][(int)JointType.HandLeft].Position.Y > localHistory[i][(int)JointType.HipCenter].Position.Y ||
+                //localHistory[i][(int)JointType.HandLeft].Position.Y > localHistory[i][(int)JointType.HipCenter].Position.Y ||
+                localHistory[i][(int)JointType.HandLeft].Position.Y > localHistory[i][(int)JointType.KneeLeft].Position.Y ||
+                localHistory[i][(int)JointType.HandLeft].Position.Y > localHistory[i][(int)JointType.KneeRight].Position.Y ||
                 localHistory[i][(int)JointType.HandLeft].Position.X < localHistory[i - 1][(int)JointType.HandLeft].Position.X ||
                 Math.Abs(localHistory[i][(int)JointType.HandLeft].Position.Y - startPoint.Y) > refDistance / 2)
                     return false;