middleware/src/Tracking/KinectMain.cs
author bastiena
Tue, 20 Mar 2012 18:00:55 +0100
changeset 7 8a21bec5d45f
parent 6 93dfb08dcc97
child 8 e4e7db2435f8
permissions -rw-r--r--
Middleware : No proximity bugs anymore. The skeleton disappear if a tracked person is too close or not tracked anymore. Processing : There are no laggs anymore when an user stay too long moving his hands and drawing tons of ellipses. (TUIO Cursors are not taken by their vectors, only the last position of the cursors are caught to be drawn).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     1
/*
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
     2
 * Projet : TraKERS
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     3
 * Module : MIDDLEWARE
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     4
 * Sous-Module : Tracking
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     5
 * Classe : KinectMain
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     6
 * 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     7
 * Auteur : alexandre.bastien@iri.centrepompidou.fr
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     8
 * 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     9
 * Fonctionnalités : Récupère les trames de données de la Kinect, les squelettes détectés via le SDK 1.0 de Microsoft.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    10
 * Interprète ces trames de façon à afficher le flux vidéo couleurs, et récupérer la distance de l'utilisateur et les
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
 * noeuds de son squelette. Lance des événements lorsque la main gauche/droite entre dans/quitte le champ.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    12
 * Envoie des données au sous-module de debug de manière a afficher un retour visuel sur la position de l'utilisateur,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    13
 * son squelette, la détection de ses mains.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
 */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
using System;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
using System.Collections.Generic;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
using System.Linq;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
using System.Text;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
using System.Windows;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
using System.Windows.Controls;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
using System.Windows.Data;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
using System.Windows.Documents;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
using System.Windows.Input;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
using System.Windows.Media;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
using System.Windows.Media.Imaging;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
using System.Windows.Navigation;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
using System.Windows.Shapes;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
using System.Drawing;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
using System.Windows.Media.Media3D;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
using Microsoft.Kinect;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
using Coding4Fun.Kinect.Wpf;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
using System.ComponentModel;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
using Trakers.Debug;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
using Tuio;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
using Trakers.Communication;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
using System.IO;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
using Trakers.Tracking.Gestures;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
using Trakers.Tracking.Events;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
using System.Configuration;
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    43
using System.Resources;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    44
using System.Reflection;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
namespace Trakers.Tracking
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    47
{
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    48
    //Il s'agit des fonctions permettant d'appeler les fonctions des événements Main droite/gauche entre/quitte le champ.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    49
    public delegate void LeftHandTrackedHandler(object o, LeftHandTrackedEventArgs e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    50
    public delegate void RightHandTrackedHandler(object o, RightHandTrackedEventArgs e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
    public delegate void LeftHandQuitHandler(object o, LeftHandQuitEventArgs e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
    public delegate void RightHandQuitHandler(object o, RightHandQuitEventArgs e);
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    53
    //Il s'agit de la fonction permettant d'appeler les fonctions des événements Swipe left/right/up/down.
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
    public delegate void SwipeHandler(object o, SwipeEventArgs e);
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    55
    //Il s'agit de la fonction permettant d'appeler les fonctions des événements Push/Pull.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    56
    public delegate void PushHandler(object o, PushEventArgs e);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    57
    //Il s'agit de la fonction permettant d'appeler les fonctions des événements Jump.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    58
    public delegate void JumpHandler(object o, JumpEventArgs e);
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    59
    //Il s'agit de la fonction permettant d'appeler les fonctions des événements de proximité.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    60
    public delegate void UserPositionHandler(object o, UserPositionEventArgs e);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    61
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    62
    public class KinectMain
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    63
    {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    64
        //Gestionnaire de ressources.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    65
        private ResourceManager rm;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    66
        //Fenêtre de debug.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    67
        private Debug.DebugWindow debug;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    68
        //Squelettes (Il y en a 6 par défaut).
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    69
        private Skeleton[] skeletons;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    70
        //Caméra infrarouge (sensor) de la Kinect.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    71
        private KinectSensor kinectSensor;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    72
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    73
        //Détecteur de swipes.
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    74
        private SwipeDetector swipeDetector;
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    75
        //Détecteur de pushes.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    76
        private PushDetector pushDetector;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    77
        //Détecteur de jumps.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    78
        private JumpDetector jumpDetector;
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    79
        //Détecteur de proximité.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    80
        private UserPositionDetector userPositionDetector;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    81
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    82
        //Distances min/max délimitant le champ de recherche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    83
        private float minDistHands;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    84
        private float maxDistHands;
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    85
        private float minDist;
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    86
        private float maxDist;
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
    87
        private float zeroPoint;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    88
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    89
        //Temps de rafraichissement pour le timer (Détection de gesture dans le serveur TUIO).
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    90
        private int timerElapsing;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
    91
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    92
        //Serveur TUIO pour la connexion du Middleware vers le Front Atelier.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    93
        private Server server;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    94
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    95
        //Les événements des mains pour la recherche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    96
        public static event LeftHandTrackedHandler LeftHandTrackedEvent;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    97
        public static event RightHandTrackedHandler RightHandTrackedEvent;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    98
        public static event LeftHandQuitHandler LeftHandQuitEvent;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    99
        public static event RightHandQuitHandler RightHandQuitEvent;
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   100
        //L'événement swipe.
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   101
        public static event SwipeHandler SwipeEvent;
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   102
        //L'événement push.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   103
        public static event PushHandler PushEvent;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   104
        //L'événement jump.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   105
        public static event JumpHandler JumpEvent;
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   106
        //L'événement l'utilisateur se déplace dans la zone de détection.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   107
        public static event UserPositionHandler UserPositionEvent;
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   108
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   109
        private string connexionHost;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   110
        private int connexionPort;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   111
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   112
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   113
        *  Initialisation de la classe principale.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   114
        *  Affiche l'écran de debug dans lequel on voit la distance à la Kinect,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   115
        *  les mains détectées et le squelette de l'utilisateur.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   116
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   117
        public KinectMain()
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   118
        {
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   119
            //On fait appel au gestionnaire de ressources.
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   120
            rm = new ResourceManager("Trakers.Properties.resources", Assembly.GetExecutingAssembly());
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   121
            
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   122
            //On tente de charger les paramètres du fichier params.ini.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   123
            //Si on n'y arrive pas, on affiche une erreur et on charge les paramètres par défaut.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   124
            if (!loadParameters())
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   125
            {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   126
                debug.ExceptionLbl.Content = rm.GetString("loadParametersFail");
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   127
                //Distances de détection des mains par défaut pour la recherche (ici de 1m à 2m de la Kinect).
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   128
                minDistHands = 1.0f;
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   129
                maxDistHands = 1.5f;
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   130
                minDist = 1.0f;
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   131
                maxDist = 4.0f;
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   132
                zeroPoint = 1.7f;
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   133
                connexionHost = "127.0.0.1";
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   134
                connexionPort = 80;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   135
                timerElapsing = 1000;
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   136
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   137
7
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   138
            //On crée la fenêtre de debug.
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   139
            debug = new Debug.DebugWindow(this);
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   140
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   141
            //On crée les détecteurs de gestes.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   142
            swipeDetector = new SwipeDetector(debug);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   143
            pushDetector = new PushDetector(debug);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   144
            jumpDetector = new JumpDetector(debug);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   145
            //On crée le détecteur de proximité.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   146
            userPositionDetector = new UserPositionDetector(debug, minDist, maxDist, zeroPoint, minDistHands, maxDistHands);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   147
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   148
            //On affiche la fenêtre de debug.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   149
            try
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   150
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   151
                debug.ShowDialog();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   152
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   153
            catch(Exception){}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   154
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   155
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   156
        /*
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   157
        *  Initialisation de la classe principale avec comme argument le gestionnaire de ressources.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   158
        */
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   159
        public KinectMain(ResourceManager _rm) : this()
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   160
        {
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   161
            rm = _rm;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   162
        }
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   163
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   164
        /*
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   165
        *  Initialisation du sensor de la Kinect.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   166
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   167
        public void KinectInitialization()
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   168
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   169
            try
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   170
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   171
                //On sélectionne la première kinect détectée.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   172
                kinectSensor = KinectSensor.KinectSensors.FirstOrDefault(s => s.Status == KinectStatus.Connected);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   173
                //La caméra couleur est activée avec une résolution 640x480 et un framerate de 30 FPS.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   174
                kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   175
                //La caméra de profondeur est activée.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   176
                kinectSensor.DepthStream.Enable();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   177
                //Le squelette est activé.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   178
                kinectSensor.SkeletonStream.Enable();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   179
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   180
                //Quand le Middleware reçoit des trames de la Kinect, on va dans cette fonction.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   181
                kinectSensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(AllFramesReady);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   182
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   183
                //On applique des paramètres d'ajustement pour le squelette.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   184
                TransformSmoothParameters parameters = new TransformSmoothParameters();
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   185
                parameters.Smoothing = 0.2f;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   186
                parameters.Correction = 0.8f;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   187
                parameters.Prediction = 0.0f;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   188
                parameters.JitterRadius = 0.5f;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   189
                parameters.MaxDeviationRadius = 0.5f;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   190
                kinectSensor.SkeletonStream.Enable(parameters);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   191
                //On démarre la Kinect.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   192
                kinectSensor.Start();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   193
                debug.ExceptionLbl.Content = "";
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   194
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   195
            catch (System.Exception)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   196
            {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   197
                debug.ExceptionLbl.Content = rm.GetString("KinectNotConnected");
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   198
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   199
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   200
            //Pour les événements main gauche/droite entre dans/quitte le champ, on a 4 listeners.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   201
            //Fonction appelée lorsque la main gauche entre dans le champ de recherche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   202
            LeftHandTrackedListener leftHandTrackedListener = new LeftHandTrackedListener();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   203
            LeftHandTrackedEvent += new LeftHandTrackedHandler(leftHandTrackedListener.ShowOnScreen);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   204
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   205
            //Fonction appelée lorsque la main droite entre dans le champ de recherche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   206
            RightHandTrackedListener rightHandTrackedListener = new RightHandTrackedListener();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   207
            RightHandTrackedEvent += new RightHandTrackedHandler(rightHandTrackedListener.ShowOnScreen);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   208
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   209
            //Fonction appelée lorsque la main gauche quitte le champ de recherche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   210
            LeftHandQuitListener leftHandQuitListener = new LeftHandQuitListener();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   211
            LeftHandQuitEvent += new LeftHandQuitHandler(leftHandQuitListener.ShowOnScreen);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   212
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   213
            //Fonction appelée lorsque la main droite quitte le champ de recherche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   214
            RightHandQuitListener rightHandQuitListener = new RightHandQuitListener();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   215
            RightHandQuitEvent += new RightHandQuitHandler(rightHandQuitListener.ShowOnScreen);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   216
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   217
            //Fonction appelée lorsque l'utilisateur effectue un Swipe right/left/up/down.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   218
            SwipeListener swipeListener = new SwipeListener();
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   219
            SwipeEvent += new SwipeHandler(swipeListener.ShowOnScreen);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   220
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   221
            //Fonction appelée lorsque l'utilisateur effectue un Push/Pull.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   222
            PushListener pushListener = new PushListener();
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   223
            PushEvent += new PushHandler(pushListener.ShowOnScreen);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   224
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   225
            //Fonction appelée lorsque l'utilisateur effectue un Jump.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   226
            JumpListener jumpListener = new JumpListener();
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   227
            JumpEvent += new JumpHandler(jumpListener.ShowOnScreen);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   228
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   229
            //Fonction appelée lorsque l'utilisateur se déplace dans la zone de détection.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   230
            UserPositionListener userPositionListener = new UserPositionListener();
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   231
            UserPositionEvent += new UserPositionHandler(userPositionListener.ShowOnScreen);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   232
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   233
            //On connecte le serveur à l'adresse locale sur le port 80.
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   234
            server = new Server(connexionHost, connexionPort, timerElapsing, debug);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   235
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   236
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   237
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   238
        *  Fermeture du sensor de la Kinect.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   239
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   240
        public void KinectClose()
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   241
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   242
            try
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   243
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   244
                //On stoppe la Kinect.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   245
                kinectSensor.Stop();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   246
                //On met a zero l'image d'affichage et le serveur.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   247
                debug.DebugImage.Source = null;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   248
                //server = null;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   249
                debug.ExceptionLbl.Content = "";
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   250
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   251
            catch (System.Exception)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   252
            {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   253
                debug.ExceptionLbl.Content = rm.GetString("KinectNotConnected");
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   254
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   255
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   256
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   257
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   258
        *  Récupère le premier squelette.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   259
        */
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   260
        Skeleton GetFirstSkeleton(object sender, AllFramesReadyEventArgs e)
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   261
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   262
            using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame())
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   263
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   264
                if (skeletonFrameData == null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   265
                    return null;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   266
                if ((skeletons == null) || (skeletons.Length != skeletonFrameData.SkeletonArrayLength))
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   267
                    skeletons = new Skeleton[skeletonFrameData.SkeletonArrayLength];
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   268
                skeletonFrameData.CopySkeletonDataTo(skeletons);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   269
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   270
                //On obtient le premier skelette.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   271
                Skeleton first = (from s in skeletons where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   272
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   273
                return first;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   274
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   275
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   276
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   277
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   278
        *  Récupère le squelette le plus proche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   279
        */
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   280
        Skeleton GetNearestSkeleton(object sender, AllFramesReadyEventArgs e)
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   281
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   282
            using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame())
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   283
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   284
                if (skeletonFrameData == null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   285
                    return null;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   286
                if ((skeletons == null) || (skeletons.Length != skeletonFrameData.SkeletonArrayLength))
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   287
                    skeletons = new Skeleton[skeletonFrameData.SkeletonArrayLength];
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   288
                skeletonFrameData.CopySkeletonDataTo(skeletons);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   289
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   290
                Skeleton s;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   291
                float minDist = (float)-1.0;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   292
                int minID = 0;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   293
                    
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   294
                //Pour tous les squelettes.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   295
                for(int i = 0 ; i < skeletons.Count() ; i++)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   296
                {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   297
                    s = skeletons.ElementAt(i);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   298
                    //S'il est tracké.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   299
                    if(s.TrackingState == SkeletonTrackingState.Tracked)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   300
                    {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   301
                        //On récupère sa position et on obtient la distance min et l'ID du squelette qui est à la distance min.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   302
                        float dist = skeletons.ElementAt(i).Position.Z;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   303
                        if (minDist == -1)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   304
                        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   305
                            minDist = dist;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   306
                            minID = i;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   307
                        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   308
                        else if(minDist > dist)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   309
                        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   310
                            minDist = dist;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   311
                            minID = i;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   312
                        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   313
                    }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   314
                }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   315
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   316
                //On renvoie le skelette le plus proche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   317
                return skeletons.ElementAt(minID);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   318
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   319
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   320
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   321
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   322
        *  Récupère le squelette le plus proche.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   323
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   324
        private void AllFramesReady(object sender, AllFramesReadyEventArgs e)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   325
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   326
            //On ne calcule rien si la fenêtre de debug se ferme.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   327
            if (debug.isClosing())
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   328
                return;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   329
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   330
            //On met à jour la vidéo de debug.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   331
            debug.RefreshVideo(e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   332
            //On récupère le premier squelette tracké.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   333
            //Skeleton first = GetFirstSkeleton(e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   334
            //On récupère le plus proche squelette tracké.
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   335
            Skeleton first = GetNearestSkeleton(sender, e);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   336
            //Si celui-ci n’est pas nul
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   337
            if (first == null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   338
                return;
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   339
            
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   340
            //Si ce squelette est tracké (donc suivi et reconnu par la camera)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   341
            if (first.TrackingState == SkeletonTrackingState.Tracked)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   342
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   343
                //Ensemble des noeuds du squelette.
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   344
                Joint hipCenter = getJoint(first, JointType.HipCenter), spine = getJoint(first, JointType.Spine), shoulderCenter = getJoint(first, JointType.ShoulderCenter), head = getJoint(first, JointType.Head);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   345
                Joint shoulderLeft = getJoint(first, JointType.ShoulderLeft), elbowLeft = getJoint(first, JointType.ElbowLeft), wristLeft = getJoint(first, JointType.WristLeft), handLeft = getJoint(first, JointType.HandLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   346
                Joint shoulderRight = getJoint(first, JointType.ShoulderRight), elbowRight = getJoint(first, JointType.ElbowRight), wristRight = getJoint(first, JointType.WristRight), handRight = getJoint(first, JointType.HandRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   347
                Joint hipLeft = getJoint(first, JointType.HipLeft), kneeLeft = getJoint(first, JointType.KneeLeft), ankleLeft = getJoint(first, JointType.AnkleLeft), footLeft = getJoint(first, JointType.FootLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   348
                Joint hipRight = getJoint(first, JointType.HipRight), kneeRight = getJoint(first, JointType.KneeRight), ankleRight = getJoint(first, JointType.AnkleRight), footRight = getJoint(first, JointType.FootRight);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   349
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   350
                //On construit l'historique des postures.
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   351
                List<Joint> joints = new List<Joint>();
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   352
                joints.Clear();
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   353
                joints.Insert((int)JointType.HipCenter, hipCenter);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   354
                joints.Insert((int)JointType.Spine, spine);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   355
                joints.Insert((int)JointType.ShoulderCenter, shoulderCenter);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   356
                joints.Insert((int)JointType.Head, head);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   357
                joints.Insert((int)JointType.ShoulderLeft, shoulderLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   358
                joints.Insert((int)JointType.ElbowLeft, elbowLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   359
                joints.Insert((int)JointType.WristLeft, wristLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   360
                joints.Insert((int)JointType.HandLeft, handLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   361
                joints.Insert((int)JointType.ShoulderRight, shoulderRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   362
                joints.Insert((int)JointType.ElbowRight, elbowRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   363
                joints.Insert((int)JointType.WristRight, wristRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   364
                joints.Insert((int)JointType.HandRight, handRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   365
                joints.Insert((int)JointType.HipLeft, hipLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   366
                joints.Insert((int)JointType.KneeLeft, kneeLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   367
                joints.Insert((int)JointType.AnkleLeft, ankleLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   368
                joints.Insert((int)JointType.FootLeft, footLeft);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   369
                joints.Insert((int)JointType.HipRight, hipRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   370
                joints.Insert((int)JointType.KneeRight, kneeRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   371
                joints.Insert((int)JointType.AnkleRight, ankleRight);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   372
                joints.Insert((int)JointType.FootRight, footRight);
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   373
                GestureDetector.UpdateSkeletonHistory(joints);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   374
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   375
                //Si la main gauche est dans le champ, on lance l'événement approprié.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   376
                if (handLeft.Position.Z < maxDistHands && handLeft.Position.Z > minDistHands)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   377
                {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   378
                    LeftHandTrackedEventArgs leftHandTrackedEvent = new LeftHandTrackedEventArgs(handLeft, handLeft.Position.Z, debug, server);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   379
                    OnLeftHandTrackedEvent(leftHandTrackedEvent);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   380
                }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   381
                //Si la main gauche quitte le champ, on lance l'événement approprié.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   382
                else
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   383
                {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   384
                    LeftHandQuitEventArgs leftHandQuitEvent = new LeftHandQuitEventArgs(handLeft, handLeft.Position.Z, debug, server);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   385
                    OnLeftHandQuitEvent(leftHandQuitEvent);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   386
                }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   387
                //Si la main droite est dans le champ, on lance l'événement approprié.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   388
                if (handRight.Position.Z < maxDistHands && handRight.Position.Z > minDistHands)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   389
                {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   390
                    RightHandTrackedEventArgs rightHandTrackedEvent = new RightHandTrackedEventArgs(handRight, handRight.Position.Z, debug, server);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   391
                    OnRightHandTrackedEvent(rightHandTrackedEvent);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   392
                }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   393
                //Si la main droite quitte le champ, on lance l'événement approprié.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   394
                else
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   395
                {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   396
                    RightHandQuitEventArgs rightHandQuitEvent = new RightHandQuitEventArgs(handRight, handRight.Position.Z, debug, server);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   397
                    OnRightHandQuitEvent(rightHandQuitEvent);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   398
                }
7
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   399
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   400
                //Si l'utilisateur effectue un swipe left.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   401
                if (swipeDetector.CheckForSwipeLeft())
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   402
                {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   403
                    SwipeEventArgs swipeEvent = new SwipeEventArgs(debug, server, SwipeDetector.Direction.LEFT);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   404
                    OnSwipeEvent(swipeEvent);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   405
                }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   406
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   407
                //Si l'utilisateur effectue un swipe right.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   408
                if (swipeDetector.CheckForSwipeRight())
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   409
                {
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   410
                    SwipeEventArgs swipeEvent = new SwipeEventArgs(debug, server, SwipeDetector.Direction.RIGHT);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   411
                    OnSwipeEvent(swipeEvent);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   412
                }
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   413
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   414
                //Enum sur la main qui effectue le geste.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   415
                PushDetector.Hand handPush;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   416
                //Si l'utilisateur effectue un push.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   417
                if ((handPush = pushDetector.CheckForPush()) != PushDetector.Hand.NONE)
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   418
                {
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   419
                    PushEventArgs pushEvent = new PushEventArgs(debug, server, PushDetector.Direction.PUSH, handPush);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   420
                    OnPushEvent(pushEvent);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   421
                }
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   422
                //Si l'utilisateur effectue un pull.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   423
                if ((handPush = pushDetector.CheckForPull()) != PushDetector.Hand.NONE)
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   424
                {
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   425
                    PushEventArgs pushEvent = new PushEventArgs(debug, server, PushDetector.Direction.PULL, handPush);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   426
                    OnPushEvent(pushEvent);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   427
                }
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   428
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   429
                //Si l'utilisateur effectue un saut.
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   430
                /*if (jumpDetector.CheckForJump())
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   431
                {
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   432
                    JumpEventArgs jumpEvent = new JumpEventArgs(debug, server);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   433
                    OnJumpEvent(jumpEvent);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   434
                }*/
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   435
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   436
                //Si l'utilisateur se déplace dans la zone de détection.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   437
                //On traite le problème en plusieurs limites, on discrétise la zone.
7
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   438
                if (first.TrackingState == SkeletonTrackingState.Tracked)
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   439
                {
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   440
                    float proximity = userPositionDetector.CalcProximity(first.Position.Z);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   441
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   442
                    if (proximity > 0f)
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   443
                    {
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   444
                        UserPositionEventArgs userPositionEvent = new UserPositionEventArgs(debug, server, proximity);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   445
                        OnUserPositionEvent(userPositionEvent);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   446
                    }
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   447
                    else
7
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   448
                    {
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   449
                        Console.Out.WriteLine("FAIL");
7
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   450
                        debug.hideSkeleton();
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   451
                    }
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   452
                }
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   453
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   454
                //Dessine le squelette dans le debug.
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   455
                debug.drawJoints(first.Joints, first);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   456
                debug.showSkeleton(hipCenter, spine, shoulderCenter, head, shoulderLeft, elbowLeft, wristLeft, handLeft, shoulderRight, elbowRight, wristRight, handRight, hipLeft, kneeLeft, ankleLeft, footLeft, hipRight, kneeRight, ankleRight, footRight);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   457
            }
7
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   458
            else
8a21bec5d45f Middleware :
bastiena
parents: 6
diff changeset
   459
                debug.hideSkeleton();
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   460
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   461
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   462
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   463
        *  Change l'échelle des coordonnées d'un noeud pour qu'en X et Y il corresponde à la résolution et en Z à la distance à la Kinect.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   464
        */
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   465
        public Joint getJoint(Skeleton ske, JointType jointID)
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   466
        {
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   467
            return Coding4Fun.Kinect.Wpf.SkeletalExtensions.ScaleTo(ske.Joints[jointID], 600, 400, 0.75f, 0.75f);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   468
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   469
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   470
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   471
        *  Initialise l'événement et fait appel aux fonctions du listener quand la main gauche entre dans le champ.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   472
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   473
        public static void OnLeftHandTrackedEvent(LeftHandTrackedEventArgs e)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   474
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   475
            if (LeftHandTrackedEvent != null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   476
                LeftHandTrackedEvent(new object(), e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   477
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   478
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   479
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   480
        *  Initialise l'événement et fait appel aux fonctions du listener quand la main droite entre dans le champ.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   481
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   482
        public static void OnRightHandTrackedEvent(RightHandTrackedEventArgs e)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   483
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   484
            if (RightHandTrackedEvent != null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   485
                RightHandTrackedEvent(new object(), e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   486
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   487
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   488
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   489
        *  Initialise l'événement et fait appel aux fonctions du listener quand la main gauche quitte le champ.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   490
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   491
        public static void OnLeftHandQuitEvent(LeftHandQuitEventArgs e)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   492
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   493
            if (LeftHandQuitEvent != null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   494
                LeftHandQuitEvent(new object(), e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   495
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   496
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   497
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   498
        *  Initialise l'événement et fait appel aux fonctions du listener quand la main droite quitte le champ.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   499
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   500
        public static void OnRightHandQuitEvent(RightHandQuitEventArgs e)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   501
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   502
            if (RightHandQuitEvent != null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   503
                RightHandQuitEvent(new object(), e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   504
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   505
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   506
        /*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   507
        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur effectue un swipe right.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   508
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   509
        public static void OnSwipeEvent(SwipeEventArgs e)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   510
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   511
            if (SwipeEvent != null)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   512
                SwipeEvent(new object(), e);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   513
        }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   514
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   515
        /*
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   516
        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur effectue un push.
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   517
        */
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   518
        public static void OnPushEvent(PushEventArgs e)
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   519
        {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   520
            if (PushEvent != null)
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   521
                PushEvent(new object(), e);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   522
        }
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   523
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   524
        /*
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   525
        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur effectue un saut.
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   526
        */
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   527
        public static void OnJumpEvent(JumpEventArgs e)
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   528
        {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   529
            if (JumpEvent != null)
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   530
                JumpEvent(new object(), e);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   531
        }
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   532
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   533
        /*
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   534
        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur se déplace
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   535
         *  dans la zone de détection.
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   536
        */
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   537
        public static void OnUserPositionEvent(UserPositionEventArgs e)
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   538
        {
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   539
            if (UserPositionEvent != null)
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   540
                UserPositionEvent(new object(), e);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   541
        }
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   542
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   543
        /*
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   544
        *  Méthode de chargement des paramètres (position du champ de recherche...).
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   545
        */
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   546
        public bool loadParameters()
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   547
        {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   548
            try
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   549
            {
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   550
                minDistHands = (float)double.Parse(ConfigurationManager.AppSettings["searchMinDistance"]);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   551
                maxDistHands = (float)double.Parse(ConfigurationManager.AppSettings["searchMaxDistance"]);
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   552
                minDist = (float)double.Parse(ConfigurationManager.AppSettings["minDistance"]);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   553
                maxDist = (float)double.Parse(ConfigurationManager.AppSettings["maxDistance"]);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   554
                zeroPoint = (float)double.Parse(ConfigurationManager.AppSettings["zeroPoint"]);
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   555
                connexionHost = ConfigurationManager.AppSettings["connexionHost"];
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   556
                connexionPort = int.Parse(ConfigurationManager.AppSettings["connexionPort"]);
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   557
                timerElapsing = int.Parse(ConfigurationManager.AppSettings["timerElapsing"]);
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   558
            }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   559
            catch (Exception)
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   560
            {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   561
                return false;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   562
            }
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   563
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   564
            if (maxDistHands <= 0f || minDistHands <= 0f || maxDistHands > maxDist || minDistHands > maxDist ||
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   565
                minDistHands >= maxDistHands || zeroPoint < maxDistHands || minDistHands < minDist ||
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   566
                zeroPoint >= maxDist || connexionPort < 0 || timerElapsing < 0)
3
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   567
            {
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   568
                debug.ExceptionLbl.Content = rm.GetString("loadParametersIncorrect");
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   569
                return false;
92f19af39024 Middleware :
bastiena
parents: 0
diff changeset
   570
            }
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   571
            return true;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   572
        }
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   573
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   574
        /*
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   575
         * Met à jour les nouveaux paramètres dans la configuration.
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   576
         */
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   577
        public void updateParameters()
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   578
        {
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   579
            userPositionDetector.setParams(minDist, maxDist, minDistHands, maxDistHands, zeroPoint);
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   580
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   581
            //On récupère la config.
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   582
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   583
            //On met à jour.
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   584
            config.AppSettings.Settings.Remove("searchMinDistance");
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   585
            config.AppSettings.Settings.Add("searchMinDistance", minDistHands.ToString());
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   586
            config.AppSettings.Settings.Remove("searchMaxDistance");
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   587
            config.AppSettings.Settings.Add("searchMaxDistance", maxDistHands.ToString());
6
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   588
            config.AppSettings.Settings.Remove("minDistance");
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   589
            config.AppSettings.Settings.Add("minDistance", minDist.ToString());
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   590
            config.AppSettings.Settings.Remove("maxDistance");
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   591
            config.AppSettings.Settings.Add("maxDistance", maxDist.ToString());
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   592
            config.AppSettings.Settings.Remove("zeroPoint");
93dfb08dcc97 Middleware :
bastiena
parents: 5
diff changeset
   593
            config.AppSettings.Settings.Add("zeroPoint", zeroPoint.ToString());
5
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   594
            config.AppSettings.Settings.Remove("connexionHost");
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   595
            config.AppSettings.Settings.Add("connexionHost", connexionHost);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   596
            config.AppSettings.Settings.Remove("connexionPort");
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   597
            config.AppSettings.Settings.Add("connexionPort", connexionPort.ToString());
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   598
            config.AppSettings.Settings.Remove("timerElapsing");
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   599
            config.AppSettings.Settings.Add("timerElapsing", timerElapsing.ToString());
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   600
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   601
            //Sauvegarde la configuration.
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   602
            config.Save(ConfigurationSaveMode.Modified);
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   603
            ConfigurationManager.RefreshSection("appSettings");
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   604
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   605
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   606
        /*
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   607
         * Getters et setters des paramètres du Middleware.
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   608
         */
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   609
        public void setMinDistHands(float min)
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   610
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   611
            minDistHands = min;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   612
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   613
        public void setMaxDistHands(float max)
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   614
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   615
            maxDistHands = max;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   616
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   617
        public void setConnexionHost(String host)
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   618
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   619
            connexionHost = host;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   620
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   621
        public void setConnexionPort(int port)
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   622
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   623
            connexionPort = port;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   624
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   625
        public void setTimerElapsing(int time)
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   626
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   627
            timerElapsing = time;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   628
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   629
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   630
        public float getMinDistHands()
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   631
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   632
            return minDistHands;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   633
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   634
        public float getMaxDistHands()
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   635
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   636
            return maxDistHands;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   637
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   638
        public String getConnexionHost()
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   639
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   640
            return connexionHost;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   641
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   642
        public int getConnexionPort()
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   643
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   644
            return connexionPort;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   645
        }
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   646
        public int getTimerElapsing()
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   647
        {
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   648
            return timerElapsing;
d40f84d77db4 Documentations (readme)
bastiena
parents: 3
diff changeset
   649
        }
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   650
    }
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   651
}