front_processing/src/Trakers/Trakers.pde
changeset 7 8a21bec5d45f
parent 5 d40f84d77db4
child 8 e4e7db2435f8
--- 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<pointList.size();j++)
-    {
-        TuioPoint pt = (TuioPoint)pointList.get(j);
-        fill(0);
-        drawEllipse(pt.getX(), pt.getY(), pt.getZ(), !oneHandLeft);
-        
-        if(tuioClient.getTuioCursors().size() == 2)
-            break;
-    }
+    TuioPoint pt = handCursor.getPosition();//(TuioPoint)pointList.get(j);
+    fill(0);
+    drawEllipse(pt.getX(), pt.getY(), pt.getZ(), !oneHandLeft);
 }
 
 /*FONCTION DE GESTION DES COURBES POUR DEUX MAINS DETECTEES
@@ -91,37 +96,14 @@
 Sortie : Appel aux différentes fonctions de dessin si un message est reçu*/
 void handleBothHands(Vector tuioCursorList)
 {
-    showMask();
-
     TuioCursor handLeftCursor = (TuioCursor)tuioCursorList.elementAt(0);
-    TuioCursor rightLeftCursor = (TuioCursor)tuioCursorList.elementAt(1);
-    Vector handLeftPointList = handLeftCursor.getPath();
-    Vector handRightPointList = rightLeftCursor.getPath();
+    TuioCursor handRightCursor = (TuioCursor)tuioCursorList.elementAt(1);
     TuioPoint pt;
-    
-    for(int j = 0, k = 0 ; j < handLeftPointList.size() || k < handRightPointList.size() ; j++, k++)
-    {
-        if(j < handLeftPointList.size())
-        {
-            pt = (TuioPoint)handLeftPointList.get(j);
-            drawEllipse(pt.getX(), pt.getY(), pt.getZ(), true);
-        }
-        if(k < handRightPointList.size())
-        {
-            pt = (TuioPoint)handRightPointList.get(k);
-            drawEllipse(pt.getX(), pt.getY(), pt.getZ(), false);
-        }
-        
-        if(tuioCursorList.size() == 1)
-        {
-            if(j == handLeftPointList.size())
-                oneHandLeft = false;
-            else if(k == handRightPointList.size())
-                oneHandLeft = true;
-            //fill(0, 255, 0);
-            break;
-        }
-    }
+
+    pt = (TuioPoint)handLeftCursor.getPosition();//handLeftPointList.get(j);
+    drawEllipse(pt.getX(), pt.getY(), pt.getZ(), true);
+    pt = (TuioPoint)handRightCursor.getPosition();//handRightPointList.get(k);
+    drawEllipse(pt.getX(), pt.getY(), pt.getZ(), false);
 }
 
 /*FONCTION DE DESSIN D'UN POINT DE COURBE
@@ -133,8 +115,8 @@
     fill(0, 0, 255);
     stroke(0,0,0);
 
-    float weight = map(z, 1, 1.5, 50, 1);
-    float redColor = map(z, 1, 1.5, 255, 80);
+    float weight = map(z, minDistHands, maxDistHands, 50, 1);
+    float redColor = map(z, minDistHands, maxDistHands, 255, 80);
     
     if(leftHand)
         fill(redColor,0,0);