front_processing/doc/tutorial front processing.html
author bastiena
Mon, 23 Jul 2012 10:52:41 +0200
changeset 51 03ea3d7ddbe1
parent 49 1c2834888adc
child 52 277c94533395
permissions -rw-r--r--
TraKERS : bigger text for trakers gestures in front processing help goes automatically at the bottom of the page for web gestures
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     1
<!DOCTYPE html>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="has_sidebar fixed-header earthrise">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     3
    <head>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     4
        <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     5
        <meta name="description" content="Tutoriel sur le développement et l'utilisation de code Processing utilisant le Middleware TraKERS."/>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     6
        <meta name="keywords" content="TraKERS, TraKERS Processing, TraKERS Front Processing, TraKERS Front, Kinect Processing"/>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     7
        <title>TraKERS v3.5 - Tutorial Processing</title>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     8
    </head>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
     9
    
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    10
    <body>
1c2834888adc TraKERS v3.5 :
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.
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    13
        
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    15
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    16
        <ol type="I">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    17
            <a href="#I"><li>Installation de Processing</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    18
            <a href="#II"><li>Structure d'un sketch</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    19
            <a href="#III"><li>Fonctions principales de Processing</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    20
            <a href="#IV"><li>Récupérer les objets envoyés par le Middleware TraKERS via un Client TUIO</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    21
            <a href="#V"><li>Interactions entre les objets TUIO récupérés et des fonctions de dessin basiques</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    22
            <a href="#VI"><li>Quelques exemples d'implémentation</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    23
            <a href="#VII"><li>Références</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    24
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    25
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    26
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    27
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    28
        <ol type="I" start="1">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    29
            <a name="I"><li>Installation de Processing</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    30
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    31
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    32
        <p>Avant de pouvoir modifier les sketches Processing fournis dans l'installateur, il est nécessaire d'installer Processing.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    33
        Vous trouverez l'archive ici :</p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    34
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    35
        <a href="http://processing.googlecode.com/files/processing-1.5.1-windows.zip">Processing pour Windows avec Java</a><br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    36
        <a href="http://processing.googlecode.com/files/processing-1.5.1-windows-expert.zip">Processing pour Windows sans Java</a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    37
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    38
        <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    39
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    40
        <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    41
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    42
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    43
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    44
        <ol type="I" start="2">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    45
            <a name="#II"><li>Structure d'un sketch</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    46
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    47
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    48
        <p>Un sketch est représenté par un dossier, contenant plusieurs choses :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    49
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    50
                <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    51
                <li>Un dossier code, contenant les libraries appelées dans les fichiers .pde.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    52
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    53
            Si le sketch a été exporté en application, le dossier principal contient également jusqu'à trois dossiers, qui sont :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    54
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    55
                <li>application.linux (si l'option Linux a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    56
                <li>application.macosx (si l'option Mac OS X a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    57
                <li>application.windows (si l'option Windows a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    58
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    59
            Ceux-ci contiennent les applications compilées du code source des fichiers .pde.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    60
            Il est également possible d'exporter un applet. On obtiendra donc :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    61
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    62
                <li>applet (si l'option Linux a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    63
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    64
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    65
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    66
        <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    67
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    68
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    69
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    70
        <ol type="I" start="3">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    71
            <a name="#III"><li>Fonctions principales de Processing</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    72
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    73
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    74
        <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    75
        <p>Il existe deux fonctions principales, qui sont :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    76
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    77
                <li>void setup() : Initialise les différentes variables du sketch.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    78
                <li>void draw() : Fonction rappelée automatiquement, destinée à contenir des instructions de dessin ou des appels de fonctions.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    79
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    80
            La gestion des événements souris est naturelle, comme l'indique l'exemple ci-dessous:<br /><br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    81
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    82
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    83
                public void setup()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    84
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    85
                &nbsp;&nbsp;size(200,200);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    86
                &nbsp;&nbsp;background(0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    87
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    88
                <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    89
                public void draw()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    90
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    91
                &nbsp;&nbsp;stroke(255);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    92
                &nbsp;&nbsp;if(mousePressed)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    93
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    94
                &nbsp;&nbsp;&nbsp;&nbsp;line(mouseX,mouseY,pmouseX,pmouseY);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    95
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    96
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    97
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    98
            <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    99
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   100
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   101
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   102
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   103
        <ol type="I" start="4">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   104
            <a name="#IV"><li>Récupérer les objets envoyés par le Middleware TraKERS via un Client TUIO</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   105
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   106
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   107
        <p>Les objets TUIO exploités dans le cadre de TraKERS sont de deux types :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   108
        <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   109
            <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   110
            <li>TuioString : Elles comportent une String ayant pour valeur la notification du Middleware en cas de détection de gesture par exemple.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   111
        </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   112
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   113
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   114
        <p>Voici les différentes implémentations permettant d'accéder à ces objets via le client.
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   115
        On appelle dans cet exemple plusieurs fonctions si des curseurs on été reçus par le client.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   116
        Un curseur représente une main dans la zone de recherche des mains présente dans le Middleware.<br /><br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   117
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   118
                void tuioInput()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   119
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   120
                &nbsp;&nbsp;Vector tuioCursorList = tuioClient.getTuioCursors();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   121
                    <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   122
                &nbsp;&nbsp;if(tuioCursorList.size() <= 0)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   123
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   124
                &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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   125
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   126
                    <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   127
                &nbsp;&nbsp;if(tuioCursorList.size() == 1)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   128
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   129
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si une main est détectée.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   130
                &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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   131
                &nbsp;&nbsp;&nbsp;&nbsp;handleOneHand(tuioCursorList.elementAt(0));<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   132
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   133
                &nbsp;&nbsp;else if(tuioCursorList.size() == 2)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   134
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   135
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si les deux mains sont détectées.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   136
                &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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   137
                &nbsp;&nbsp;&nbsp;&nbsp;handleBothHands(tuioCursorList);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   138
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   139
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   140
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   141
            Le code suivant montre comment on peut extraire le point contenu dans le curseur.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   142
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   143
                void handleOneHand(TuioCursor handCursor)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   144
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   145
                &nbsp;&nbsp;TuioPoint pt = handCursor.getPosition();//(TuioPoint)pointList.get(j);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   146
                &nbsp;&nbsp;//Code manipulant le point.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   147
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   148
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   149
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   150
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   151
            Le code suivant montre comment on peut extraire les points contenus dans une liste de deux curseurs.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   152
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   153
                void handleBothHands(Vector tuioCursorList)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   154
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   155
                &nbsp;&nbsp;TuioCursor handLeftCursor = (TuioCursor)tuioCursorList.elementAt(0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   156
                &nbsp;&nbsp;TuioCursor handRightCursor = (TuioCursor)tuioCursorList.elementAt(1);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   157
                &nbsp;&nbsp;TuioPoint pt;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   158
                    <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   159
                &nbsp;&nbsp;pt = (TuioPoint)handLeftCursor.getPosition();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   160
                &nbsp;&nbsp;//Code pour traiter la position de la première main.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   161
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   162
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   163
                &nbsp;&nbsp;pt = (TuioPoint)handRightCursor.getPosition();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   164
                &nbsp;&nbsp;//Code pour traiter la position de la seconde main.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   165
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   166
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   167
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   168
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   169
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   170
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   171
        <p>On appelle dans cet exemple une fonction si un message a été reçu par le client.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   172
        Un message représente un événement notifié par le Middleware.<br /><br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   173
        <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   174
            void tuioInput()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   175
            {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   176
            &nbsp;&nbsp;Vector tuioStringList = tuioClient.getTuioStrings();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   177
            &nbsp;&nbsp;if(tuioStringList.size() <= 0)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   178
            &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   179
            &nbsp;&nbsp;&nbsp;&nbsp;text("Gesture non détectée.");<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   180
            &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   181
            &nbsp;&nbsp;else<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   182
            &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   183
            &nbsp;&nbsp;&nbsp;&nbsp;TuioString message = (TuioString)tuioStringList.elementAt(0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   184
            &nbsp;&nbsp;&nbsp;&nbsp;text(message.getMessage());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   185
            &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   186
            }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   187
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   188
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   189
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   190
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   191
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   192
        <ol type="I" start="5">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   193
            <a name="#V"><li>Interactions entre les objets TUIO récupérés et des fonctions de dessin basiques</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   194
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   195
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   196
        <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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   197
        <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   198
            //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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   199
            void drawEllipse(float x, float y, float z, boolean leftHand)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   200
            {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   201
            &nbsp;&nbsp;//On met la couleur de ce qui va venir en bleu.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   202
            &nbsp;&nbsp;fill(0, 0, 255);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   203
            &nbsp;&nbsp;//On ne met pas de bordure à ce qu'on va afficher.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   204
            &nbsp;&nbsp;stroke(0,0,0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   205
            &nbsp;&nbsp;//On créer un point, une épaisseur de forme.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   206
            &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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   207
            &nbsp;&nbsp;float weight = map(z, minDistHands, maxDistHands, 50, 1);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   208
            &nbsp;&nbsp;float redColor = map(z, minDistHands, maxDistHands, 255, 80);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   209
            &nbsp;&nbsp;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   210
            &nbsp;&nbsp;//S'il s'agit de la main gauche, on colore en tons de rouge.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   211
            &nbsp;&nbsp;if(leftHand)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   212
            &nbsp;&nbsp;&nbsp;&nbsp;fill(redColor,0,0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   213
            &nbsp;&nbsp;//Sinon en tons de vert.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   214
            &nbsp;&nbsp;else<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   215
            &nbsp;&nbsp;&nbsp;&nbsp;fill(0,redColor,0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   216
            &nbsp;&nbsp;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   217
            &nbsp;&nbsp;//Si le trait est assez gros, on color en tons de bleu.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   218
            &nbsp;&nbsp;if(weight >= 30)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   219
            &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   220
            &nbsp;&nbsp;&nbsp;&nbsp;fill(0, 0, redColor);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   221
            &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   222
            &nbsp;&nbsp;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   223
            &nbsp;&nbsp;//On dessine une ellipse.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   224
            &nbsp;&nbsp;ellipse(x+20, y+100, weight, weight);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   225
            }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   226
        </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   227
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   228
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   229
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   230
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   231
        <ol type="I" start="6">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   232
            <a name="#VI"><li>Quelques exemples d'implémentation</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   233
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   234
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   235
        <p>Les exemples fournis dans l'installeur sont répartis dans 4 dossiers principaux :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   236
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   237
                <li>Trakers : Permet d'afficher des ellipses sur le passage d'une ou deux mains se situant à une certaine distance de Kinect.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   238
                <li>Trakers_gestures : Permet d'afficher le code des gestures détectées par Kinect et notifiées depuis le Middleware.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   239
                <li>Fluid_manipulation (code importé de processing.org) : Simule l'action des mains sur un fluide.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   240
                <li>Smoke_manipulation (code importé de processing.org) : Simule l'action des mains sur de la fumée.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   241
                <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   242
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   243
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   244
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   245
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   246
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   247
        <ol type="I" start="7">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   248
            <a name="#VII"><li>Références</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   249
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   250
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   251
        <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.
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   252
        Il vous est possible d'utiliser eclipse pour compiler du Processing.
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   253
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   254
                <li><a href="http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx">SDK Kinect 1.5 de Microsoft</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   255
                <li><a href="http://www.tuio.org/">TUIO</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   256
                <li><a href="http://processing.org/">Processing.org</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   257
                <li><a href="http://bodytag.org/">Autres exemples en Processing</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   258
                <li><a href="http://processing.org/learning/eclipse/">Processing sous eclipse</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   259
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   260
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   261
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   262
        <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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   263
    </body>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   264
</html>