Middleware :
segmentation of Middleware between 4 modules :
Communication
Debug
Tracking
MainModule
I chose to integer the events in the mainModule, so I can use them to send data to Debug and Communication.
Soon DLLs will be copied to a main root folder "lib".
<!--
/*
* This file is part of the TraKERS\Middleware package.
*
* (c) IRI <http://www.iri.centrepompidou.fr/>
*
* For the full copyright and license information, please view the LICENSE_MIDDLEWARE
* file that was distributed with this source code.
*/
-->
<!--
Projet : TraKERS
Module : MIDDLEWARE
Sous-Module : Debug
Classe : DebugWindow
Auteur : alexandre.bastien@iri.centrepompidou.fr
Fonctionnalités : Affiche le rendu visuel du Middleware : Le squelette, afficher la détection des mains,
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">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="85" />
</Grid.ColumnDefinitions>
<!-- Ceci est le rendu visuel qui se met à jour lorsque la Kinect est allumée. -->
<Image Name="Gestures" Opacity="1" Grid.Row="0" Grid.Column="0" Stretch="Fill" />
<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 />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="LightGray">
<!-- Menu de la fenêtre de debug. -->
<Menu Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left" Height="20" Width="50" Background="LightGray" Foreground="White">
<MenuItem Header="Fichier" Background="Black">
<MenuItem Header="Paramètres" Background="White" Foreground="Black" Click="Parameters_Click" />
<MenuItem Name="QuitMenu" Header="Quitter" Background="White" Foreground="Black" />
</MenuItem>
</Menu>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</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" />
</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" />
</Grid>
<!-- Ce bouton permet d'allumer/éteindre la Kinect. -->
<Button Name="Switch" Content="OFF" Grid.Row="1" Grid.Column="0" Width="30" Click="Switch_Click" />
<!-- 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>
</Window>