# HG changeset patch # User bastiena # Date 1332262855 -3600 # Node ID 8a21bec5d45f423b69b558f2bd6f54d98f49d321 # Parent 93dfb08dcc979d210e6248d0a38da5c2c04ff385 Middleware : No proximity bugs anymore. The skeleton disappear if a tracked person is too close or not tracked anymore. Processing : There are no laggs anymore when an user stay too long moving his hands and drawing tons of ellipses. (TUIO Cursors are not taken by their vectors, only the last position of the cursors are caught to be drawn). diff -r 93dfb08dcc97 -r 8a21bec5d45f front_processing/doc/readme.txt --- a/front_processing/doc/readme.txt Mon Mar 19 18:24:59 2012 +0100 +++ b/front_processing/doc/readme.txt Tue Mar 20 18:00:55 2012 +0100 @@ -6,8 +6,6 @@ Dans cette partie, il vous faudra installer Processing, disponible ici : http://processing.org/download/ -Vous les trouverez ici si vous le souhaitez : http://www.microsoft.com/en-us/kinectforwindows/develop/release-notes.aspx - II) TraKERS - Structure : Dans le Front, se trouvent deux exécutables "Trakers" et "Trakers_gestures", respectivement pour le tracé de courbes via les coordonnées des positions des mains récupérées du Middleware et pour l'affichage des gestes détectés. Il aurait été possible de les rassembler en un programme, mais pour des raisons de clarté lors de l'utilisation, j'ai préféré procéder ainsi. diff -r 93dfb08dcc97 -r 8a21bec5d45f front_processing/src/Trakers/Trakers.pde --- a/front_processing/src/Trakers/Trakers.pde Mon Mar 19 18:24:59 2012 +0100 +++ b/front_processing/src/Trakers/Trakers.pde Tue Mar 20 18:00:55 2012 +0100 @@ -1,15 +1,21 @@ import TUIO.*; TuioProcessing tuioClient; +//Indique s'il s'agit de la main gauche. boolean oneHandLeft; +//Port du Client TUIO +int port = 80; +float minDistHands = 1; +float maxDistHands = 1.5; + /*FONCTION D'INITIALISATION Entrée : Sortie : Création de la fenêtre et du client TUIO*/ -void setup() +public void setup() { size (640, 480); showMask(); - tuioClient = new TuioProcessing(this, 80); + tuioClient = new TuioProcessing(this, port); textAlign(CENTER); imageMode(CENTER); smooth(); @@ -18,7 +24,7 @@ /*FONCTION DE DESSIN Entrée : Sortie : Appel à la fonction de traitement d'input du serveur toutes les n millisecondes*/ -void draw() +public void draw() { fill(0); tuioInput(); @@ -28,62 +34,61 @@ /*FONCTION DE RECEPTION DES MESSAGES OSC Entrée : Sortie : Appel aux différentes fonctions de dessin si un message est reçu*/ -void tuioInput() +public void tuioInput() { noFill(); - Vector tuioCursorList = tuioClient.getTuioCursors(); - + if(tuioCursorList.size() <= 0) { showMask(); - text("Les mains sont trop loin ou trop près.", width/2 - 20, 20); - text("Je ne détecte aucune main.", width/2 - 20, 40); + refreshText("Les mains sont trop loin ou trop près.", "Je ne détecte aucune main."); } - + if(tuioCursorList.size() == 1) { handleOneHand((TuioCursor)tuioCursorList.elementAt(0)); fill(255); - text("Les mains sont dans la zone de captation.", width/2 - 20, 20); - text("Je détecte une main.", width/2 - 20, 40); + refreshText("Les mains sont dans la zone de captation.", "Je détecte une main."); } else if(tuioCursorList.size() == 2) { handleBothHands(tuioCursorList); fill(255); - text("Les mains sont dans la zone de captation.", width/2 - 20, 20); - text("Je détecte les deux mains.", width/2 - 20, 40); + refreshText("Les mains sont dans la zone de captation.", "Je détecte les deux mains."); } } /*FONCTION DE GENERATION DU MASQUE Entrée : Sortie : Place des rectangles autour de la zone de dessin*/ -void showMask() +public void showMask() { background(0); fill(255); rect(0, 80, width, height-130); } + +/*FONCTION DE RAFFRACHISSEMENT DU TEXTE SUPERIEUR +Entrée : Texte à afficher +Sortie : Place un rectangle au dessus de la zone de dessin et raffraichit le texte*/ +public void refreshText(String txt1, String txt2) +{ + fill(0); + rect(0, 0, width, 80); + fill(255); + text(txt1, width/2 - 20, 20); + text(txt2, width/2 - 20, 40); +} /*FONCTION DE GESTION DES COURBES POUR UNE MAIN DETECTEE Entrée : Un curseur TUIO Sortie : Appel aux différentes fonctions de dessin si un message est reçu*/ -void handleOneHand(TuioCursor handCursor) +public void handleOneHand(TuioCursor handCursor) { - showMask(); - - Vector pointList = handCursor.getPath(); - for (int j=0;j - + @@ -56,7 +56,7 @@ -