middleware/src/Tracking/KinectMain.cs
changeset 7 8a21bec5d45f
parent 6 93dfb08dcc97
child 8 e4e7db2435f8
equal deleted inserted replaced
6:93dfb08dcc97 7:8a21bec5d45f
   116         */
   116         */
   117         public KinectMain()
   117         public KinectMain()
   118         {
   118         {
   119             //On fait appel au gestionnaire de ressources.
   119             //On fait appel au gestionnaire de ressources.
   120             rm = new ResourceManager("Trakers.Properties.resources", Assembly.GetExecutingAssembly());
   120             rm = new ResourceManager("Trakers.Properties.resources", Assembly.GetExecutingAssembly());
   121             //On crée la fenêtre de debug.
       
   122             debug = new Debug.DebugWindow(this);
       
   123             
   121             
   124             //On tente de charger les paramètres du fichier params.ini.
   122             //On tente de charger les paramètres du fichier params.ini.
   125             //Si on n'y arrive pas, on affiche une erreur et on charge les paramètres par défaut.
   123             //Si on n'y arrive pas, on affiche une erreur et on charge les paramètres par défaut.
   126             if (!loadParameters())
   124             if (!loadParameters())
   127             {
   125             {
   134                 zeroPoint = 1.7f;
   132                 zeroPoint = 1.7f;
   135                 connexionHost = "127.0.0.1";
   133                 connexionHost = "127.0.0.1";
   136                 connexionPort = 80;
   134                 connexionPort = 80;
   137                 timerElapsing = 1000;
   135                 timerElapsing = 1000;
   138             }
   136             }
       
   137 
       
   138             //On crée la fenêtre de debug.
       
   139             debug = new Debug.DebugWindow(this);
   139 
   140 
   140             //On crée les détecteurs de gestes.
   141             //On crée les détecteurs de gestes.
   141             swipeDetector = new SwipeDetector(debug);
   142             swipeDetector = new SwipeDetector(debug);
   142             pushDetector = new PushDetector(debug);
   143             pushDetector = new PushDetector(debug);
   143             jumpDetector = new JumpDetector(debug);
   144             jumpDetector = new JumpDetector(debug);
   393                 else
   394                 else
   394                 {
   395                 {
   395                     RightHandQuitEventArgs rightHandQuitEvent = new RightHandQuitEventArgs(handRight, handRight.Position.Z, debug, server);
   396                     RightHandQuitEventArgs rightHandQuitEvent = new RightHandQuitEventArgs(handRight, handRight.Position.Z, debug, server);
   396                     OnRightHandQuitEvent(rightHandQuitEvent);
   397                     OnRightHandQuitEvent(rightHandQuitEvent);
   397                 }
   398                 }
   398                 
   399 
   399                 //Si l'utilisateur effectue un swipe left.
   400                 //Si l'utilisateur effectue un swipe left.
   400                 if (swipeDetector.CheckForSwipeLeft())
   401                 if (swipeDetector.CheckForSwipeLeft())
   401                 {
   402                 {
   402                     SwipeEventArgs swipeEvent = new SwipeEventArgs(debug, server, SwipeDetector.Direction.LEFT);
   403                     SwipeEventArgs swipeEvent = new SwipeEventArgs(debug, server, SwipeDetector.Direction.LEFT);
   403                     OnSwipeEvent(swipeEvent);
   404                     OnSwipeEvent(swipeEvent);
   432                     OnJumpEvent(jumpEvent);
   433                     OnJumpEvent(jumpEvent);
   433                 }*/
   434                 }*/
   434 
   435 
   435                 //Si l'utilisateur se déplace dans la zone de détection.
   436                 //Si l'utilisateur se déplace dans la zone de détection.
   436                 //On traite le problème en plusieurs limites, on discrétise la zone.
   437                 //On traite le problème en plusieurs limites, on discrétise la zone.
   437                 if(first.TrackingState == SkeletonTrackingState.Tracked)
   438                 if (first.TrackingState == SkeletonTrackingState.Tracked)
   438                 {
   439                 {
   439                     float proximity = userPositionDetector.CalcProximity(first.Position.Z);
   440                     float proximity = userPositionDetector.CalcProximity(first.Position.Z);
   440                     /*if (proximity > 0f && proximity < 25f)
       
   441                     {
       
   442                         Console.Out.WriteLine("1/4");
       
   443 
       
   444                     }
       
   445                     else if (proximity > 25f && proximity < 50f)
       
   446                     {
       
   447                         Console.Out.WriteLine("1/2");
       
   448 
       
   449                     }
       
   450                     else if (proximity > 50f && proximity < 75f)
       
   451                     {
       
   452                         Console.Out.WriteLine("3/4");
       
   453 
       
   454                     }
       
   455                     else if (proximity == 100f)
       
   456                     {
       
   457                         Console.Out.WriteLine("TRUE");
       
   458 
       
   459                     }*/
       
   460 
   441 
   461                     if (proximity > 0f)
   442                     if (proximity > 0f)
   462                     {
   443                     {
   463                         UserPositionEventArgs userPositionEvent = new UserPositionEventArgs(debug, server, proximity);
   444                         UserPositionEventArgs userPositionEvent = new UserPositionEventArgs(debug, server, proximity);
   464                         OnUserPositionEvent(userPositionEvent);
   445                         OnUserPositionEvent(userPositionEvent);
   465                     }
   446                     }
   466                     else
   447                     else
       
   448                     {
   467                         Console.Out.WriteLine("FAIL");
   449                         Console.Out.WriteLine("FAIL");
       
   450                         debug.hideSkeleton();
       
   451                     }
   468                 }
   452                 }
   469 
   453 
   470                 //Dessine le squelette dans le debug.
   454                 //Dessine le squelette dans le debug.
   471                 debug.drawJoints(first.Joints, first);
   455                 debug.drawJoints(first.Joints, first);
   472                 debug.showSkeleton(hipCenter, spine, shoulderCenter, head, shoulderLeft, elbowLeft, wristLeft, handLeft, shoulderRight, elbowRight, wristRight, handRight, hipLeft, kneeLeft, ankleLeft, footLeft, hipRight, kneeRight, ankleRight, footRight);
   456                 debug.showSkeleton(hipCenter, spine, shoulderCenter, head, shoulderLeft, elbowLeft, wristLeft, handLeft, shoulderRight, elbowRight, wristRight, handRight, hipLeft, kneeLeft, ankleLeft, footLeft, hipRight, kneeRight, ankleRight, footRight);
   473             }
   457             }
       
   458             else
       
   459                 debug.hideSkeleton();
   474         }
   460         }
   475 
   461 
   476         /*
   462         /*
   477         *  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.
   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.
   478         */
   464         */