--- a/middleware/Debug/DebugWindow.xaml Thu Jul 26 14:34:02 2012 +0200
+++ b/middleware/Debug/DebugWindow.xaml Thu Jul 26 17:44:35 2012 +0200
@@ -21,7 +21,7 @@
des gestures et la distance de l'utilisateur.
-->
-<Window x:Class="Trakers.Debug.DebugWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TraKERS - DebugWindow" Height="480" Width="640" Loaded="Window_Loaded">
+<Window Name="MiddlewareDebugWindow" x:Class="Trakers.Debug.DebugWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TraKERS - DebugWindow" Height="480" Width="640" Loaded="Window_Loaded" ResizeMode="NoResize">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
@@ -38,11 +38,11 @@
<Canvas Name="DebugCanvas" Background="Transparent">
<Image Name="DebugImage" Opacity="1" Grid.Row="0" Grid.Column="0"/>
</Canvas>
-
+
<Grid Grid.Row="0" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="20" />
- <RowDefinition Height="40" />
+ <RowDefinition Height="60" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="LightGray">
@@ -135,8 +135,8 @@
</Grid.ColumnDefinitions>
<!-- Cette partie permet d'afficher les mains se trouvant dans le champ de recherche. -->
- <Label Name="LeftHand" Grid.Column="0" Background="DarkGray" FontSize="14" FontWeight="Bold" />
- <Label Name="RightHand" Grid.Column="1" Background="DarkGray" FontSize="14" FontWeight="Bold" />
+ <Image Name="LeftHand" Grid.Column="0" />
+ <Image Name="RightHand" Grid.Column="1" />
</Grid>
<!-- Cette partie permet d'afficher les erreurs survenant dans le programme. -->
<Label Name="ExceptionLbl" Height="30" VerticalAlignment="Bottom" Grid.Row="2" Content="" HorizontalContentAlignment="Center" />
@@ -147,20 +147,25 @@
<!-- Ce panneau affiche la distance actuelle de l'utilisateur à la Kinect et indique une couleur pour chaque mètre. -->
<!-- 0-1 m : Rouge. 1-2 : Orange. 2-3 : Jaune. 3-4 : Blanc. -->
- <StackPanel Grid.Row="0" Grid.Column="1" Name="List">
- <Label Name="DistanceLbl" Content="Distance :" />
- <Rectangle Name="R0" Height="35" Fill="DarkGray" />
- <Rectangle Name="R1" Height="35" Fill="DarkGray" />
- <Rectangle Name="R2" Height="35" Fill="DarkGray" />
- <Rectangle Name="R3" Height="35" Fill="DarkGray" />
- <Rectangle Name="R4" Height="35" Fill="DarkGray" />
- <Rectangle Name="R5" Height="35" Fill="DarkGray" />
- <Rectangle Name="R6" Height="35" Fill="DarkGray" />
- <Rectangle Name="R7" Height="35" Fill="DarkGray" />
- <Rectangle Name="R8" Height="35" Fill="DarkGray" />
- <Rectangle Name="R9" Height="35" Fill="DarkGray" />
- <Rectangle Name="R10" Height="35" Fill="DarkGray" />
+ <StackPanel Grid.Row="0" Grid.Column="1" Name="List" Panel.ZIndex="0">
+ <Image Height="35" Name="KinectImage" Width="80"></Image>
+ <Rectangle Name="R0" Height="35" Fill="Green" />
+ <Rectangle Name="R1" Height="35" Fill="Green" />
+ <Rectangle Name="R2" Height="35" Fill="Green" />
+ <Rectangle Name="R3" Height="35" Fill="Yellow" />
+ <Rectangle Name="R4" Height="35" Fill="Yellow" />
+ <Rectangle Name="R5" Height="35" Fill="Yellow" />
+ <Rectangle Name="R6" Height="35" Fill="Orange" />
+ <Rectangle Name="R7" Height="35" Fill="Orange" />
+ <Rectangle Name="R8" Height="35" Fill="Orange" />
+ <Rectangle Name="R9" Height="35" Fill="Red" />
+ <Rectangle Name="R10" Height="35" Fill="Red" />
</StackPanel>
+
+ <!-- Images pour représenter la distance à la Kinect. -->
+ <Canvas>
+ <Image Height="60" Name="UserImage" Width="80" Margin="552,350,0,0" Panel.ZIndex="1"></Image>
+ </Canvas>
</Grid>
</Window>
--- a/middleware/Debug/DebugWindow.xaml.cs Thu Jul 26 14:34:02 2012 +0200
+++ b/middleware/Debug/DebugWindow.xaml.cs Thu Jul 26 17:44:35 2012 +0200
@@ -85,15 +85,26 @@
//On charge les éléments relatifs au projet.
if (projectName.Equals("TraKERS"))
{
+ MiddlewareDebugWindow.Title = "TraKERS - Middleware";
configPath = ".\\TraKERS - config.txt";
loadTraKERSMenu();
}
else if (projectName.Equals("BBM"))
{
+ MiddlewareDebugWindow.Title = "Browse by Motion - Middleware";
configPath = ".\\BBM - config.txt";
loadBBMMenu();
}
+ //On initialise les images des mains.
+ Bitmap rightHandBitmap = getImage(imgLocation + "\\right_hand_off.png"), leftHandBitmap = getImage(imgLocation + "\\left_hand_off.png");
+ LeftHand.Source = CreateBitmapSourceFromBitmap(leftHandBitmap);
+ RightHand.Source = CreateBitmapSourceFromBitmap(rightHandBitmap);
+ //On initialise les images de proximité.
+ Bitmap userBitmap = getImage(imgLocation + "\\user.png"), kinectBitmap = getImage(imgLocation + "\\kinect.png");
+ UserImage.Source = CreateBitmapSourceFromBitmap(userBitmap);
+ KinectImage.Source = CreateBitmapSourceFromBitmap(kinectBitmap);
+
//On tente de charger les paramètres du fichier params.ini.
//Si on n'y arrive pas, on affiche une erreur et on charge les paramètres par défaut.
if (!loadParameters())
@@ -199,6 +210,7 @@
//On cache la partie du menu des readme et doc de BBM.
DocumentationFrontIDILLMenu.Visibility = Visibility.Collapsed;
+ FrontIDILLMenu.Visibility = Visibility.Collapsed;
//Readme et doc de TraKERS.
ReadmeFrontProcessingMenu.Header = rm.GetString("menuReadmeFrontProcessing");
@@ -348,16 +360,9 @@
{
//Il affiche ON (pour allumer la kinect).
Switch.Content = "ON";
- //On remet à zéro tous les éléments du retour visuel.
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- DistanceLbl.Content = "Distance :";
- LeftHand.Background = System.Windows.Media.Brushes.DarkGray;
- LeftHand.Content = "";
- RightHand.Background = System.Windows.Media.Brushes.DarkGray;
- RightHand.Content = "";
+ Bitmap rightHandBitmap = getImage(imgLocation + "\\right_hand_off.png"), leftHandBitmap = getImage(imgLocation + "\\left_hand_off.png");
+ LeftHand.Source = CreateBitmapSourceFromBitmap(leftHandBitmap);
+ RightHand.Source = CreateBitmapSourceFromBitmap(rightHandBitmap);
DebugCanvas.Children.RemoveRange(1, DebugCanvas.Children.Count - 1);
}
}
@@ -414,176 +419,7 @@
*/
public void showDistance(float proximity)
{
- DistanceLbl.Content = "Proximity : " + proximity + "%";
-
- if (proximity == 0)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.DarkGray;
- R7.Fill = System.Windows.Media.Brushes.DarkGray;
- R8.Fill = System.Windows.Media.Brushes.DarkGray;
- R9.Fill = System.Windows.Media.Brushes.DarkGray;
- R10.Fill = System.Windows.Media.Brushes.DarkGray;
- }
- else if (proximity > 0 && proximity < 10)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.DarkGray;
- R7.Fill = System.Windows.Media.Brushes.DarkGray;
- R8.Fill = System.Windows.Media.Brushes.DarkGray;
- R9.Fill = System.Windows.Media.Brushes.DarkGray;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 10 && proximity < 20)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.DarkGray;
- R7.Fill = System.Windows.Media.Brushes.DarkGray;
- R8.Fill = System.Windows.Media.Brushes.DarkGray;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 20 && proximity < 30)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.DarkGray;
- R7.Fill = System.Windows.Media.Brushes.DarkGray;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 30 && proximity < 40)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.DarkGray;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 40 && proximity < 50)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 50 && proximity < 60)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.Orange;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 60 && proximity < 70)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.Yellow;
- R5.Fill = System.Windows.Media.Brushes.Orange;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 70 && proximity < 80)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.Yellow;
- R4.Fill = System.Windows.Media.Brushes.Yellow;
- R5.Fill = System.Windows.Media.Brushes.Orange;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 80 && proximity < 90)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.Yellow;
- R3.Fill = System.Windows.Media.Brushes.Yellow;
- R4.Fill = System.Windows.Media.Brushes.Yellow;
- R5.Fill = System.Windows.Media.Brushes.Orange;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity > 90 && proximity < 100)
- {
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.Yellow;
- R2.Fill = System.Windows.Media.Brushes.Yellow;
- R3.Fill = System.Windows.Media.Brushes.Yellow;
- R4.Fill = System.Windows.Media.Brushes.Yellow;
- R5.Fill = System.Windows.Media.Brushes.Orange;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
- else if (proximity == 100)
- {
- R0.Fill = System.Windows.Media.Brushes.Green;
- R1.Fill = System.Windows.Media.Brushes.Yellow;
- R2.Fill = System.Windows.Media.Brushes.Yellow;
- R3.Fill = System.Windows.Media.Brushes.Yellow;
- R4.Fill = System.Windows.Media.Brushes.Yellow;
- R5.Fill = System.Windows.Media.Brushes.Orange;
- R6.Fill = System.Windows.Media.Brushes.Orange;
- R7.Fill = System.Windows.Media.Brushes.Orange;
- R8.Fill = System.Windows.Media.Brushes.Red;
- R9.Fill = System.Windows.Media.Brushes.Red;
- R10.Fill = System.Windows.Media.Brushes.Red;
- }
+ UserImage.Margin = new System.Windows.Thickness(552, 350 - 350 / 100 * proximity, 0, 0);
}
/*
@@ -591,10 +427,14 @@
*/
public void showRightHandRect(bool show)
{
+ Bitmap bitmap = null;
+
if (show)
- RightHand.Background = System.Windows.Media.Brushes.Blue;
+ bitmap = getImage(imgLocation + "\\right_hand_on.png");
else
- RightHand.Background = System.Windows.Media.Brushes.DarkGray;
+ bitmap = getImage(imgLocation + "\\right_hand_off.png");
+
+ RightHand.Source = CreateBitmapSourceFromBitmap(bitmap);
}
/*
@@ -602,10 +442,14 @@
*/
public void showLeftHandRect(bool show)
{
+ Bitmap bitmap = null;
+
if (show)
- LeftHand.Background = System.Windows.Media.Brushes.Blue;
+ bitmap = getImage(imgLocation + "\\left_hand_on.png");
else
- LeftHand.Background = System.Windows.Media.Brushes.DarkGray;
+ bitmap = getImage(imgLocation + "\\left_hand_off.png");
+
+ LeftHand.Source = CreateBitmapSourceFromBitmap(bitmap);
}
/*
@@ -703,18 +547,6 @@
//On vide le canvas mais en gardant l'image.
if(DebugCanvas.Children.Count > 1)
DebugCanvas.Children.RemoveRange(1, DebugCanvas.Children.Count - 1);
- //On colore en gris tous les indicateurs.
- R0.Fill = System.Windows.Media.Brushes.DarkGray;
- R1.Fill = System.Windows.Media.Brushes.DarkGray;
- R2.Fill = System.Windows.Media.Brushes.DarkGray;
- R3.Fill = System.Windows.Media.Brushes.DarkGray;
- R4.Fill = System.Windows.Media.Brushes.DarkGray;
- R5.Fill = System.Windows.Media.Brushes.DarkGray;
- R6.Fill = System.Windows.Media.Brushes.DarkGray;
- R7.Fill = System.Windows.Media.Brushes.DarkGray;
- R8.Fill = System.Windows.Media.Brushes.DarkGray;
- R9.Fill = System.Windows.Media.Brushes.DarkGray;
- R10.Fill = System.Windows.Media.Brushes.DarkGray;
}
/*
@@ -722,7 +554,7 @@
*/
public void showLeftHandCoord(String coord)
{
- LeftHand.Content = coord;
+ //LeftHand.Content = coord;
}
/*
@@ -730,7 +562,7 @@
*/
public void showRightHandCoord(String coord)
{
- RightHand.Content = coord;
+ //RightHand.Content = coord;
}
/*
Binary file middleware/src/bin/Release/Imgs/cross.png has changed
Binary file middleware/src/bin/Release/Imgs/kinect.png has changed
Binary file middleware/src/bin/Release/Imgs/left_hand_off.png has changed
Binary file middleware/src/bin/Release/Imgs/left_hand_on.png has changed
Binary file middleware/src/bin/Release/Imgs/right_hand_off.png has changed
Binary file middleware/src/bin/Release/Imgs/right_hand_on.png has changed
Binary file middleware/src/bin/Release/Imgs/user.png has changed
Binary file middleware/src/bin/Release/Imgs/wave.png has changed
--- a/readme - BBM Middleware.txt Thu Jul 26 14:34:02 2012 +0200
+++ b/readme - BBM Middleware.txt Thu Jul 26 17:44:35 2012 +0200
@@ -38,9 +38,9 @@
Lorsque le bouton ON a été appuyé, il devient un bouton OFF, et permet d'éteindre la Kinect. Il est à noter que le fait de fermer la fenêtre éteint également le capteur de la Kinect, avant de quitter.
(Plus de détails sur la Kinect : http://fr.wikipedia.org/wiki/Kinect).
-Lorsque vous êtes détectés, le squelette de la personne la plus proche s'affiche. Les rectangles sur la droite indiquent la proximité de l'utilisateur par rapport à la Kinect, plus la barre est remplie de bas en haut, plus l'utilisateur est proche du point d'interaction maximal (point dans lequel il suffit de tendre les bras pour que les mains soient dans la zone de recherche).
+Lorsque vous êtes détectés, le squelette de la personne la plus proche s'affiche. Le personnage sur les rectangles sur la droite indiquent la proximité de l'utilisateur par rapport à la Kinect, plus le personnage est proche de la Kinect, plus l'utilisateur est proche du point d'interaction maximal (point dans lequel il suffit de tendre les bras pour que les mains soient dans la zone de recherche).
-Il existe une zone de détection des mains, située par défaut entre 1m et 1,5m de la Kinect mais configurable. En dehors de cette zone, les mains sont toujours détectées, mais aucun signal n'est envoyé via le serveur TUIO. Il y a deux rectangles en haut de cette fenêtre, permettant d'indiquer si une main est entrée dans ce champ (main gauche/droite dans le champ se traduit par la coloration du rectangle gauche/droit en bleu, et par l'affichage en pixels des coordonnées de la main (sauf pour la profondeur, qui est en mètres).
+Il existe une zone de détection des mains, située par défaut entre 1m et 1,5m de la Kinect mais configurable. En dehors de cette zone, les mains sont toujours détectées, mais aucun signal n'est envoyé via le serveur TUIO. Il y a deux images de mains en haut de cette fenêtre, permettant d'indiquer si une main est entrée dans ce champ (main gauche/droite dans le champ se traduit par la coloration de la main gauche/droite en bleu.
Il est possible de paramétrer des éléments du Middleware, comme la délimitation du champ pour les mains, le host et le port pour le serveur et l'intervalle de temps minimum qui sépare deux détections de gestes.
--- a/readme - TraKERS Middleware.txt Thu Jul 26 14:34:02 2012 +0200
+++ b/readme - TraKERS Middleware.txt Thu Jul 26 17:44:35 2012 +0200
@@ -41,9 +41,9 @@
Lorsque le bouton ON a été appuyé, il devient un bouton OFF, et permet d'éteindre la Kinect. Il est à noter que le fait de fermer la fenêtre éteint également le capteur de la Kinect, avant de quitter.
(Plus de détails sur la Kinect : http://fr.wikipedia.org/wiki/Kinect).
-Lorsque vous êtes détectés, le squelette de la personne la plus proche s'affiche. Les rectangles sur la droite indiquent la proximité de l'utilisateur par rapport à la Kinect, plus la barre est remplie de bas en haut, plus l'utilisateur est proche du point d'interaction maximal (point dans lequel il suffit de tendre les bras pour que les mains soient dans la zone de recherche).
+Lorsque vous êtes détectés, le squelette de la personne la plus proche s'affiche. Le personnage sur les rectangles sur la droite indiquent la proximité de l'utilisateur par rapport à la Kinect, plus le personnage est proche de la Kinect, plus l'utilisateur est proche du point d'interaction maximal (point dans lequel il suffit de tendre les bras pour que les mains soient dans la zone de recherche).
-Il existe une zone de détection des mains, située par défaut entre 1m et 1,5m de la Kinect mais configurable. En dehors de cette zone, les mains sont toujours détectées, mais aucun signal n'est envoyé via le serveur TUIO. Il y a deux rectangles en haut de cette fenêtre, permettant d'indiquer si une main est entrée dans ce champ (main gauche/droite dans le champ se traduit par la coloration du rectangle gauche/droit en bleu, et par l'affichage en pixels des coordonnées de la main (sauf pour la profondeur, qui est en mètres).
+Il existe une zone de détection des mains, située par défaut entre 1m et 1,5m de la Kinect mais configurable. En dehors de cette zone, les mains sont toujours détectées, mais aucun signal n'est envoyé via le serveur TUIO. Il y a deux images de mains en haut de cette fenêtre, permettant d'indiquer si une main est entrée dans ce champ (main gauche/droite dans le champ se traduit par la coloration de la main gauche/droite en bleu.
Il est possible de paramétrer des éléments du Middleware, comme la délimitation du champ pour les mains, le host et le port pour le serveur et l'intervalle de temps minimum qui sépare deux détections de gestes.