front_processing/doc/tutorial - TraKERS Front Processing.html
author bastiena
Thu, 02 Aug 2012 11:01:41 +0200
changeset 70 a1476fa4c75b
parent 54 eb52a12370a3
permissions -rw-r--r--
Fusionner
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
54
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     1
<!DOCTYPE html>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="has_sidebar fixed-header earthrise">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     3
    <head>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     4
        <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     5
        <meta name="description" content="Tutoriel sur le développement et l'utilisation de code Processing utilisant le Middleware TraKERS."/>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     6
        <meta name="keywords" content="TraKERS, TraKERS Processing, TraKERS Front Processing, TraKERS Front, Kinect Processing"/>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     7
        <title>TraKERS v3.5 - Tutorial Processing</title>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     8
    </head>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
     9
    
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    10
    <body>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    11
        <p>TraKERS (Tracking using Kinect and Extracting Robust Skeletons) est une interface basée sur la détection de gestures / positions du squelette envoyé par le SDK Microsoft (1.5) de Kinect. Il est composé d'un Middleware assurant l'interaction avec Kinect, un rendu visuel et l'envoi de notifications sous forme de messages OSC.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    12
        Le deuxième module de ce projet est un Front en Processing doté d'un client TUIO et récupérant les messages OSC (sous forme d'objets tels que des Curseurs ou des Strings).</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    13
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    14
        <p>Ce tutoriel concerne ce second module et a pour but d'expliquer le fonctionnement général d'un sketch Processing et la récupération des notifications du Middleware. Il sera agrémenté d'exemples fonctionnels créés pour les besoins de ce tutoriel ou inspirés d'exemples réels disponibles sur le site processing.org.</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    15
		
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    16
		<h2>Sommaire</h2>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    17
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    18
        <ol type="I">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    19
            <a href="#I"><li>Installation de Processing</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    20
            <a href="#II"><li>Structure d'un sketch</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    21
            <a href="#III"><li>Fonctions principales de Processing</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    22
            <a href="#IV"><li>Récupérer les objets envoyés par le Middleware TraKERS via un Client TUIO</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    23
            <a href="#V"><li>Interactions entre les objets TUIO récupérés et des fonctions de dessin basiques</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    24
            <a href="#VI"><li>Quelques exemples d'implémentation</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    25
            <a href="#VII"><li>Références</li></a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    26
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    27
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    28
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    29
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    30
        <ol type="I" start="1">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    31
            <h3><a name="I"><li>Installation de Processing</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    32
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    33
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    34
        <p>Avant de pouvoir modifier les sketches Processing fournis dans l'installateur, il est nécessaire d'installer Processing.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    35
        Vous trouverez l'archive ici :</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    36
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    37
        <a href="http://processing.googlecode.com/files/processing-1.5.1-windows.zip">Processing pour Windows avec Java</a><br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    38
        <a href="http://processing.googlecode.com/files/processing-1.5.1-windows-expert.zip">Processing pour Windows sans Java</a>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    39
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    40
        <p>Une fois téléchargé, il vous suffit de le dézipper, et d'affecter tous les types de fichiers .pde à l'exécutable Processing fourni dans l'archive.</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    41
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    42
        <p>Si ce n'est pas déjà fait, il peut être utile de spécifier dans le path Windows l'emplacement du répertoire où vous avez extrait l'archive.</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    43
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    44
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    45
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    46
        <ol type="I" start="2">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    47
            <h3><a name="#II"><li>Structure d'un sketch</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    48
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    49
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    50
        <p>Un sketch est représenté par un dossier, contenant plusieurs choses :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    51
            <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    52
                <li>Un ou plusieurs fichiers d'extension .pde (Qui contiennent le code Processing). Le .pde principal doit avoir le même nom que le dossier qui les contient.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    53
                <li>Un dossier code, contenant les libraries appelées dans les fichiers .pde.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    54
            </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    55
            Si le sketch a été exporté en application, le dossier principal contient également jusqu'à trois dossiers, qui sont :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    56
            <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    57
                <li>application.linux (si l'option Linux a été cochée durant l'export).</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    58
                <li>application.macosx (si l'option Mac OS X a été cochée durant l'export).</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    59
                <li>application.windows (si l'option Windows a été cochée durant l'export).</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    60
            </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    61
            Ceux-ci contiennent les applications compilées du code source des fichiers .pde.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    62
            Il est également possible d'exporter un applet. On obtiendra donc :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    63
            <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    64
                <li>applet (si l'option Linux a été cochée durant l'export).</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    65
            </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    66
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    67
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    68
        <p>Concernant le projet TraKERS, les sketches fournis peuvent contenir différents fichiers .pde (un pour chaque classe), un fichier TuioFunctions.pde permettant de récupérer les objets TUIO envoyés par le Middleware et un fichier principal du même nom que le sketch.</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    69
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    70
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    71
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    72
        <ol type="I" start="3">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    73
            <h3><a name="#III"><li>Fonctions principales de Processing</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    74
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    75
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    76
        <p>En Processing, les variables déclarées absolues (en dehors d'une fonction ou d'une classe) sont visibles dans tous les autres fichiers .pde du sketch. Il en va de même pour les classes et fonctions (et non méthodes de classe, qui est une fonction appartenant à la classe et donc ne pouvant être appelée qu'en créant un objet de cette classe).</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    77
        <p>Il existe deux fonctions principales, qui sont :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    78
            <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    79
                <li>void setup() : Initialise les différentes variables du sketch.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    80
                <li>void draw() : Fonction rappelée automatiquement, destinée à contenir des instructions de dessin ou des appels de fonctions.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    81
            </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    82
            La gestion des événements souris est naturelle, comme l'indique l'exemple ci-dessous:<br /><br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    83
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    84
            <code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    85
                public void setup()<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    86
                {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    87
                &nbsp;&nbsp;size(200,200);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    88
                &nbsp;&nbsp;background(0);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    89
                }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    90
                <br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    91
                public void draw()<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    92
                {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    93
                &nbsp;&nbsp;stroke(255);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    94
                &nbsp;&nbsp;if(mousePressed)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    95
                &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    96
                &nbsp;&nbsp;&nbsp;&nbsp;line(mouseX,mouseY,pmouseX,pmouseY);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    97
                &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    98
                }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
    99
            </code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   100
            <br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   101
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   102
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   103
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   104
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   105
        <ol type="I" start="4">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   106
            <h3><a name="#IV"><li>Récupérer les objets envoyés par le Middleware TraKERS via un Client TUIO</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   107
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   108
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   109
        <p>Les objets TUIO exploités dans le cadre de TraKERS sont de deux types :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   110
        <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   111
            <li>TuioCursor : Les curseurs sont utilisés pour transmettre des points au Front Processing. On récupère leurs coordonnées sous forme de TuioPoint, qui possèdent comme attributs les valeurs du point en X, Y et Z.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   112
            <li>TuioString : Elles comportent une String ayant pour valeur la notification du Middleware en cas de détection de gesture par exemple.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   113
        </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   114
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   115
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   116
        <p>Voici les différentes implémentations permettant d'accéder à ces objets via le client.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   117
        On appelle dans cet exemple plusieurs fonctions si des curseurs on été reçus par le client.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   118
        Un curseur représente une main dans la zone de recherche des mains présente dans le Middleware.<br /><br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   119
            <code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   120
                void tuioInput()<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   121
                {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   122
                &nbsp;&nbsp;Vector tuioCursorList = tuioClient.getTuioCursors();<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   123
                    <br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   124
                &nbsp;&nbsp;if(tuioCursorList.size() <= 0)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   125
                &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   126
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si on ne reçoit pas de curseurs <=> que aucune main n'est dans la zone de recherche des mains.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   127
                &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   128
                    <br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   129
                &nbsp;&nbsp;if(tuioCursorList.size() == 1)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   130
                &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   131
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si une main est détectée.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   132
                &nbsp;&nbsp;&nbsp;&nbsp;//Par exemple, on peut faire appel à une fonction qu'on nommera arbitrairement handleOneHand et qui prendra en paramètre le curseur.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   133
                &nbsp;&nbsp;&nbsp;&nbsp;handleOneHand(tuioCursorList.elementAt(0));<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   134
                &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   135
                &nbsp;&nbsp;else if(tuioCursorList.size() == 2)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   136
                &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   137
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si les deux mains sont détectées.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   138
                &nbsp;&nbsp;&nbsp;&nbsp;//Par exemple, on peut faire appel à une fonction qu'on nommera arbitrairement handleBothHands et qui prendra en paramètre la liste des curseurs récupérés par le client.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   139
                &nbsp;&nbsp;&nbsp;&nbsp;handleBothHands(tuioCursorList);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   140
                &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   141
                }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   142
            </code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   143
            Le code suivant montre comment on peut extraire le point contenu dans le curseur.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   144
            <code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   145
                void handleOneHand(TuioCursor handCursor)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   146
                {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   147
                &nbsp;&nbsp;TuioPoint pt = handCursor.getPosition();//(TuioPoint)pointList.get(j);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   148
                &nbsp;&nbsp;//Code manipulant le point.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   149
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   150
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   151
                }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   152
            </code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   153
            Le code suivant montre comment on peut extraire les points contenus dans une liste de deux curseurs.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   154
            <code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   155
                void handleBothHands(Vector tuioCursorList)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   156
                {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   157
                &nbsp;&nbsp;TuioCursor handLeftCursor = (TuioCursor)tuioCursorList.elementAt(0);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   158
                &nbsp;&nbsp;TuioCursor handRightCursor = (TuioCursor)tuioCursorList.elementAt(1);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   159
                &nbsp;&nbsp;TuioPoint pt;<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   160
                    <br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   161
                &nbsp;&nbsp;pt = (TuioPoint)handLeftCursor.getPosition();<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   162
                &nbsp;&nbsp;//Code pour traiter la position de la première main.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   163
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   164
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   165
                &nbsp;&nbsp;pt = (TuioPoint)handRightCursor.getPosition();<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   166
                &nbsp;&nbsp;//Code pour traiter la position de la seconde main.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   167
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   168
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   169
                }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   170
            </code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   171
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   172
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   173
        <p>On appelle dans cet exemple une fonction si un message a été reçu par le client.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   174
        Un message représente un événement notifié par le Middleware.<br /><br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   175
        <code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   176
            void tuioInput()<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   177
            {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   178
            &nbsp;&nbsp;Vector tuioStringList = tuioClient.getTuioStrings();<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   179
            &nbsp;&nbsp;if(tuioStringList.size() <= 0)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   180
            &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   181
            &nbsp;&nbsp;&nbsp;&nbsp;text("Gesture non détectée.");<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   182
            &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   183
            &nbsp;&nbsp;else<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   184
            &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   185
            &nbsp;&nbsp;&nbsp;&nbsp;TuioString message = (TuioString)tuioStringList.elementAt(0);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   186
            &nbsp;&nbsp;&nbsp;&nbsp;text(message.getMessage());<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   187
            &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   188
            }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   189
            </code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   190
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   191
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   192
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   193
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   194
        <ol type="I" start="5">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   195
            <h3><a name="#V"><li>Interactions entre les objets TUIO récupérés et des fonctions de dessin basiques</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   196
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   197
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   198
        <p>Dans les exemples de code vu précédemment, nous aurions pu remplacer la fonction text() par une fonction de votre cru, comme celle-ci :<br /><br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   199
        <code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   200
            //Cette fonction dessine une ellipse à la position (x;y;z) et prend en paramètre la fait qu'il s'agisse de la main droite ou gauche.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   201
            void drawEllipse(float x, float y, float z, boolean leftHand)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   202
            {<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   203
            &nbsp;&nbsp;//On met la couleur de ce qui va venir en bleu.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   204
            &nbsp;&nbsp;fill(0, 0, 255);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   205
            &nbsp;&nbsp;//On ne met pas de bordure à ce qu'on va afficher.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   206
            &nbsp;&nbsp;stroke(0,0,0);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   207
            &nbsp;&nbsp;//On créer un point, une épaisseur de forme.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   208
            &nbsp;&nbsp;//Z est la distance de la main par rapport à Kinect. La zone de recherche des mains est toujours comprise entre minDistHands et maxDistHands<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   209
            &nbsp;&nbsp;float weight = map(z, minDistHands, maxDistHands, 50, 1);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   210
            &nbsp;&nbsp;float redColor = map(z, minDistHands, maxDistHands, 255, 80);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   211
            &nbsp;&nbsp;<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   212
            &nbsp;&nbsp;//S'il s'agit de la main gauche, on colore en tons de rouge.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   213
            &nbsp;&nbsp;if(leftHand)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   214
            &nbsp;&nbsp;&nbsp;&nbsp;fill(redColor,0,0);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   215
            &nbsp;&nbsp;//Sinon en tons de vert.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   216
            &nbsp;&nbsp;else<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   217
            &nbsp;&nbsp;&nbsp;&nbsp;fill(0,redColor,0);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   218
            &nbsp;&nbsp;<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   219
            &nbsp;&nbsp;//Si le trait est assez gros, on color en tons de bleu.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   220
            &nbsp;&nbsp;if(weight >= 30)<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   221
            &nbsp;&nbsp;{<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   222
            &nbsp;&nbsp;&nbsp;&nbsp;fill(0, 0, redColor);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   223
            &nbsp;&nbsp;}<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   224
            &nbsp;&nbsp;<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   225
            &nbsp;&nbsp;//On dessine une ellipse.<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   226
            &nbsp;&nbsp;ellipse(x+20, y+100, weight, weight);<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   227
            }<br />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   228
        </code>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   229
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   230
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   231
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   232
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   233
        <ol type="I" start="6">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   234
            <h3><a name="#VI"><li>Quelques exemples d'implémentation</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   235
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   236
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   237
        <p>Les exemples fournis dans l'installeur sont répartis dans 4 dossiers principaux :
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   238
            <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   239
                <li>Trakers : Permet d'afficher des ellipses sur le passage d'une ou deux mains se situant à une certaine distance de Kinect.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   240
                <li>Trakers_gestures : Permet d'afficher le code des gestures détectées par Kinect et notifiées depuis le Middleware.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   241
                <li>Fluid_manipulation (code importé de processing.org) : Simule l'action des mains sur un fluide.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   242
                <li>Smoke_manipulation (code importé de processing.org) : Simule l'action des mains sur de la fumée.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   243
                <li>Interaction examples (code importé de processing.org) : Quelques petits exemples utilisant des formes basiques et réagissant à la position de la main la plus proche de Kinect.</li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   244
            </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   245
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   246
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   247
        <hr />
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   248
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   249
        <ol type="I" start="7">
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   250
            <h3><a name="#VII"><li>Références</li></a></h3>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   251
        </ol>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   252
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   253
        <p>Voici quelques liens utiles où se trouvent les dépendances trop lourdes pour être incluses dans cet installeur. Ils vont permettront également d'approfondissant vos connaissances sur Processing ou TUIO.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   254
        Il vous est possible d'utiliser eclipse pour compiler du Processing.
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   255
            <ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   256
                <li><a href="http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx">SDK Kinect 1.5 de Microsoft</a></li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   257
                <li><a href="http://www.tuio.org/">TUIO</a></li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   258
                <li><a href="http://processing.org/">Processing.org</a></li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   259
                <li><a href="http://bodytag.org/">Autres exemples en Processing</a></li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   260
                <li><a href="http://processing.org/learning/eclipse/">Processing sous eclipse</a></li>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   261
            </ul>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   262
        </p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   263
        
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   264
        <p>Si vous expérimentez des difficultés ou souhaitez nous soumettre une requête, veuillez consulter le fichier contact.txt à la racine du projet.</p>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   265
    </body>
eb52a12370a3 BBM : installer
bastiena
parents:
diff changeset
   266
</html>