middleware/Tracking/Gestures/GestureDetector.cs
changeset 17 fda26bfcabef
parent 15 4b78f179e7ce
child 27 6c08d4d7219e
--- a/middleware/Tracking/Gestures/GestureDetector.cs	Wed Apr 04 10:51:21 2012 +0200
+++ b/middleware/Tracking/Gestures/GestureDetector.cs	Thu Apr 05 15:54:44 2012 +0200
@@ -27,11 +27,14 @@
 using System.Text;
 using Microsoft.Kinect;
 using System.Drawing;
+using Trakers.Debug;
 
-namespace Trakers.MainModule.Gestures
+namespace Trakers.Tracking.Gestures
 {
     public class GestureDetector
     {
+        public DebugWindow debug;
+
         //Historique des positions du squelette.
         protected static List<List<Joint>> history = new List<List<Joint>>();
         //protected JointCollection previousSkeleton;
@@ -55,9 +58,9 @@
         //Estimation du nombre de positions du squelette à vérifier dans l'historique.
         protected int indexesToCheck;// = gesturePeriod * indexesPerSecond;
 
-        public GestureDetector()
+        public GestureDetector(DebugWindow _debug)
         {
-            
+            debug = _debug;
         }
 
         //Setters.
@@ -115,40 +118,5 @@
                 history.RemoveAt(0);
             }
         }
-
-        /*public bool CheckForHandWave()
-        {
-            //Crée un historique de squelette local, puisque l'historique est mis à jour toutes les ~1/30 s.
-            List<Skeleton> history = new List<Skeleton>(history);
-            //Si il n'y a pas assez de positions dans l'historique local pour vérifier le geste.
-            if (history.Count < indexesToCheck)
-                return false;
-
-            float refDistance = Math.Abs(history[0].Joints.ElementAt(spineID).Position.Y - history[0].Joints.ElementAt(hipCenterID).Position.Y);
-            float startPos = history[history.Count - indexesToCheck].Joints.ElementAt(handRightID).Position.X;
-            bool movedRight = false;
-            for (int i = history.Count - indexesToCheck + 1; i < history.Count; i++)
-            {
-                // Throughout the gesture period, right hand should be above theelbow, below the head and hand should be higher than the wrist
-                if (!(history[i].Joints[JointID.HandRight].Position.Y > history[i].Joints[JointID.ElbowRight].Position.Y + refDistance &&
-                history[i].Joints[JointID.HandRight].Position.Y < history[i].Joints[JointID.Head].Position.Y &&
-                history[i].Joints[JointID.HandRight].Position.Y > history[i].Joints[JointID.WristRight].Position.Y + refDistance / 4))
-                {
-                    return false;
-                }
-                // If the previous condition was met, check if the hand has moved to the right
-                if (history[i].Joints[JointID.HandRight].Position.X >= startPos + refDistance / 2 && !movedRight)
-                {
-                    movedRight = true;
-                }
-                // If the hand did move to the right, check if it returned near the original position
-                if (movedRight && history[i].Joints[JointID.HandRight].Position.X <= startPos + refDistance / 5)
-                {
-                    skeletonHistory.Clear();
-                    return true;
-                }
-            }
-                return false;
-        }*/
     }
 }