middleware/src/Tracking/Gestures/GestureDetector.cs
changeset 3 92f19af39024
parent 0 6fefd4afe506
child 5 d40f84d77db4
--- a/middleware/src/Tracking/Gestures/GestureDetector.cs	Fri Mar 09 18:15:12 2012 +0100
+++ b/middleware/src/Tracking/Gestures/GestureDetector.cs	Thu Mar 15 13:33:21 2012 +0100
@@ -1,4 +1,18 @@
-using System;
+/*
+ * Projet : TraKERS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking/Gestures
+ * Classe : GestureDetector
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Reçoit les positions des noeuds envoyés par la classe de manipulation de la Kinect
+ * et les stocke dans un historique.
+ * Contient également des variables propres à toute gesture : distance de référence, point de départ,
+ * durée de la gesture, FPS et nombre de frames à traiter.
+ */
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -10,10 +24,10 @@
     public class GestureDetector
     {
         //Historique des positions du squelette.
-        protected List<List<Joint>> history = new List<List<Joint>>();
+        protected static List<List<Joint>> history = new List<List<Joint>>();
         //protected JointCollection previousSkeleton;
 
-        //Voici les ID des noeuds d'un squelette.
+        //Voici les ID des noeuds d'un squelette : variables magiques en attente de factorisation.
         protected int hipCenterID = 0, spineID = 1, shoulderCenterID = 2, headID = 3;
         protected int shoulderLeftID = 4, elbowLeftID = 5, wristLeftID = 6, handLeftID = 7;
         protected int shoulderRightID = 8, elbowRightID = 9, wristRightID = 10, handRightID = 11;
@@ -83,22 +97,14 @@
 
         //Stocke les gestes du skelette pour ~3 seconds (si on prend en compte que le framerate de la Kinect
         //est de ~30 fps.
-        public void UpdateSkeletonHistory(List<Joint> latestSkeleton)
+        public static void UpdateSkeletonHistory(List<Joint> latestSkeleton)
         {
-            /*if (previousSkeleton == null)
-                previousSkeleton = latestSkeleton;
-            else if (previousSkeleton != latestSkeleton)
-            {*/
-                history.Add(latestSkeleton);
-                /*if (history.Count > 3)
-                {
-                    System.Console.WriteLine(history[0][0].Position.X + " " + history[1][0].Position.X + " " + history[2][0].Position.X);
-                }*/
-                if (history.Count > 90)
-                {
-                    history.RemoveAt(0);
-                }
-            //}
+            history.Add(latestSkeleton);
+                
+            if (history.Count > 90)
+            {
+                history.RemoveAt(0);
+            }
         }
 
         /*public bool CheckForHandWave()