front_processing/doc/tutorial front processing.html
author bastiena
Mon, 23 Jul 2012 16:59:35 +0200
changeset 52 277c94533395
parent 49 1c2834888adc
permissions -rw-r--r--
Front IDILL : doc updated swipe factorized search bug fixed : when a search is not complete
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>
52
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
    15
		
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
    16
		<h2>Sommaire</h2>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    17
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    18
        <ol type="I">
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    19
            <a href="#I"><li>Installation de Processing</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    20
            <a href="#II"><li>Structure d'un sketch</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    21
            <a href="#III"><li>Fonctions principales de Processing</li></a>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    24
            <a href="#VI"><li>Quelques exemples d'implémentation</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    25
            <a href="#VII"><li>Références</li></a>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    26
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    27
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    28
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    29
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    30
        <ol type="I" start="1">
52
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
    31
            <h3><a name="I"><li>Installation de Processing</li></a></h3>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    32
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    33
        
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    35
        Vous trouverez l'archive ici :</p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    36
        
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    39
        
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    41
        
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    43
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    44
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    45
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    46
        <ol type="I" start="2">
52
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
    47
            <h3><a name="#II"><li>Structure d'un sketch</li></a></h3>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    48
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    49
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    50
        <p>Un sketch est représenté par un dossier, contenant plusieurs choses :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    51
            <ul>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    53
                <li>Un dossier code, contenant les libraries appelées dans les fichiers .pde.</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    54
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    55
            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
    56
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    57
                <li>application.linux (si l'option Linux a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    58
                <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
    59
                <li>application.windows (si l'option Windows a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    60
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    61
            Ceux-ci contiennent les applications compilées du code source des fichiers .pde.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    62
            Il est également possible d'exporter un applet. On obtiendra donc :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    63
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    64
                <li>applet (si l'option Linux a été cochée durant l'export).</li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    65
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    66
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    67
        
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    69
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    70
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    71
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    72
        <ol type="I" start="3">
52
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
    73
            <h3><a name="#III"><li>Fonctions principales de Processing</li></a></h3>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    74
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    75
        
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    77
        <p>Il existe deux fonctions principales, qui sont :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    78
            <ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    79
                <li>void setup() : Initialise les différentes variables du sketch.</li>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    81
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    82
            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
    83
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    84
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    85
                public void setup()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    86
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    87
                &nbsp;&nbsp;size(200,200);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    88
                &nbsp;&nbsp;background(0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    89
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    90
                <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    91
                public void draw()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    92
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    93
                &nbsp;&nbsp;stroke(255);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    94
                &nbsp;&nbsp;if(mousePressed)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    95
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    96
                &nbsp;&nbsp;&nbsp;&nbsp;line(mouseX,mouseY,pmouseX,pmouseY);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    97
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    98
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
    99
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   100
            <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   101
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   102
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   103
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   104
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   105
        <ol type="I" start="4">
52
277c94533395 Front IDILL :
bastiena
parents: 49
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>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   107
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   108
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   109
        <p>Les objets TUIO exploités dans le cadre de TraKERS sont de deux types :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   110
        <ul>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   113
        </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   114
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   115
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   116
        <p>Voici les différentes implémentations permettant d'accéder à ces objets via le client.
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   117
        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
   118
        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
   119
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   120
                void tuioInput()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   121
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   122
                &nbsp;&nbsp;Vector tuioCursorList = tuioClient.getTuioCursors();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   123
                    <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   124
                &nbsp;&nbsp;if(tuioCursorList.size() <= 0)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   125
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   127
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   128
                    <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   129
                &nbsp;&nbsp;if(tuioCursorList.size() == 1)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   130
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   131
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si une main est détectée.<br />
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   133
                &nbsp;&nbsp;&nbsp;&nbsp;handleOneHand(tuioCursorList.elementAt(0));<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   134
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   135
                &nbsp;&nbsp;else if(tuioCursorList.size() == 2)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   136
                &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   137
                &nbsp;&nbsp;&nbsp;&nbsp;//Code si les deux mains sont détectées.<br />
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   139
                &nbsp;&nbsp;&nbsp;&nbsp;handleBothHands(tuioCursorList);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   140
                &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   141
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   142
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   143
            Le code suivant montre comment on peut extraire le point contenu dans le curseur.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   144
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   145
                void handleOneHand(TuioCursor handCursor)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   146
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   147
                &nbsp;&nbsp;TuioPoint pt = handCursor.getPosition();//(TuioPoint)pointList.get(j);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   148
                &nbsp;&nbsp;//Code manipulant le point.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   149
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   150
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   151
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   152
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   153
            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
   154
            <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   155
                void handleBothHands(Vector tuioCursorList)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   156
                {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   157
                &nbsp;&nbsp;TuioCursor handLeftCursor = (TuioCursor)tuioCursorList.elementAt(0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   158
                &nbsp;&nbsp;TuioCursor handRightCursor = (TuioCursor)tuioCursorList.elementAt(1);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   159
                &nbsp;&nbsp;TuioPoint pt;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   160
                    <br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   161
                &nbsp;&nbsp;pt = (TuioPoint)handLeftCursor.getPosition();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   162
                &nbsp;&nbsp;//Code pour traiter la position de la première main.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   163
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   164
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   165
                &nbsp;&nbsp;pt = (TuioPoint)handRightCursor.getPosition();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   166
                &nbsp;&nbsp;//Code pour traiter la position de la seconde main.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   167
                &nbsp;&nbsp;//Par exemple un affichage de texte.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   168
                &nbsp;&nbsp;text(pt.getX() + " " + pt.getY() + " " + pt.getZ());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   169
                }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   170
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   171
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   172
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   173
        <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
   174
        Un message représente un événement notifié par le Middleware.<br /><br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   175
        <code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   176
            void tuioInput()<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   177
            {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   178
            &nbsp;&nbsp;Vector tuioStringList = tuioClient.getTuioStrings();<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   179
            &nbsp;&nbsp;if(tuioStringList.size() <= 0)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   180
            &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   181
            &nbsp;&nbsp;&nbsp;&nbsp;text("Gesture non détectée.");<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   182
            &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   183
            &nbsp;&nbsp;else<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   184
            &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   185
            &nbsp;&nbsp;&nbsp;&nbsp;TuioString message = (TuioString)tuioStringList.elementAt(0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   186
            &nbsp;&nbsp;&nbsp;&nbsp;text(message.getMessage());<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   187
            &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   188
            }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   189
            </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   190
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   191
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   192
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   193
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   194
        <ol type="I" start="5">
52
277c94533395 Front IDILL :
bastiena
parents: 49
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>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   196
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   197
        
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   199
        <code>
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   201
            void drawEllipse(float x, float y, float z, boolean leftHand)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   202
            {<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   203
            &nbsp;&nbsp;//On met la couleur de ce qui va venir en bleu.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   204
            &nbsp;&nbsp;fill(0, 0, 255);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   205
            &nbsp;&nbsp;//On ne met pas de bordure à ce qu'on va afficher.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   206
            &nbsp;&nbsp;stroke(0,0,0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   207
            &nbsp;&nbsp;//On créer un point, une épaisseur de forme.<br />
1c2834888adc TraKERS v3.5 :
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 />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   209
            &nbsp;&nbsp;float weight = map(z, minDistHands, maxDistHands, 50, 1);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   210
            &nbsp;&nbsp;float redColor = map(z, minDistHands, maxDistHands, 255, 80);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   211
            &nbsp;&nbsp;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   212
            &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
   213
            &nbsp;&nbsp;if(leftHand)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   214
            &nbsp;&nbsp;&nbsp;&nbsp;fill(redColor,0,0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   215
            &nbsp;&nbsp;//Sinon en tons de vert.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   216
            &nbsp;&nbsp;else<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   217
            &nbsp;&nbsp;&nbsp;&nbsp;fill(0,redColor,0);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   218
            &nbsp;&nbsp;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   219
            &nbsp;&nbsp;//Si le trait est assez gros, on color en tons de bleu.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   220
            &nbsp;&nbsp;if(weight >= 30)<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   221
            &nbsp;&nbsp;{<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   222
            &nbsp;&nbsp;&nbsp;&nbsp;fill(0, 0, redColor);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   223
            &nbsp;&nbsp;}<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   224
            &nbsp;&nbsp;<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   225
            &nbsp;&nbsp;//On dessine une ellipse.<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   226
            &nbsp;&nbsp;ellipse(x+20, y+100, weight, weight);<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   227
            }<br />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   228
        </code>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   229
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   230
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   231
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   232
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   233
        <ol type="I" start="6">
52
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
   234
            <h3><a name="#VI"><li>Quelques exemples d'implémentation</li></a></h3>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   235
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   236
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   237
        <p>Les exemples fournis dans l'installeur sont répartis dans 4 dossiers principaux :
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   238
            <ul>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   241
                <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
   242
                <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
   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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   244
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   245
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   246
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   247
        <hr />
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   248
        
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   249
        <ol type="I" start="7">
52
277c94533395 Front IDILL :
bastiena
parents: 49
diff changeset
   250
            <h3><a name="#VII"><li>Références</li></a></h3>
49
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   251
        </ol>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   252
        
1c2834888adc TraKERS v3.5 :
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.
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   254
        Il vous est possible d'utiliser eclipse pour compiler du Processing.
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   255
            <ul>
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   257
                <li><a href="http://www.tuio.org/">TUIO</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   258
                <li><a href="http://processing.org/">Processing.org</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   259
                <li><a href="http://bodytag.org/">Autres exemples en Processing</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   260
                <li><a href="http://processing.org/learning/eclipse/">Processing sous eclipse</a></li>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   261
            </ul>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   262
        </p>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   263
        
1c2834888adc TraKERS v3.5 :
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>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   265
    </body>
1c2834888adc TraKERS v3.5 :
bastiena
parents:
diff changeset
   266
</html>