|
10
|
1 |
/*
|
|
8
|
2 |
* This file is part of the TraKERS\Front Processing package.
|
|
|
3 |
*
|
|
|
4 |
* (c) IRI <http://www.iri.centrepompidou.fr/>
|
|
|
5 |
*
|
|
27
|
6 |
* For the full copyright and license information, please view the LICENSE
|
|
8
|
7 |
* file that was distributed with this source code.
|
|
|
8 |
*/
|
|
|
9 |
|
|
0
|
10 |
import TUIO.*;
|
|
|
11 |
TuioProcessing tuioClient;
|
|
7
|
12 |
//Indique s'il s'agit de la main gauche.
|
|
0
|
13 |
boolean oneHandLeft;
|
|
|
14 |
|
|
8
|
15 |
//Taille de la fenêtre
|
|
|
16 |
int WIDTH = 640, HEIGHT = 480;
|
|
|
17 |
|
|
7
|
18 |
//Port du Client TUIO
|
|
|
19 |
int port = 80;
|
|
|
20 |
float minDistHands = 1;
|
|
|
21 |
float maxDistHands = 1.5;
|
|
|
22 |
|
|
0
|
23 |
/*FONCTION D'INITIALISATION
|
|
|
24 |
Entrée :
|
|
10
|
25 |
Sortie : Cr�ation de la fenêtre et du client TUIO*/
|
|
8
|
26 |
void setup()
|
|
0
|
27 |
{
|
|
8
|
28 |
size (WIDTH, HEIGHT);
|
|
3
|
29 |
showMask();
|
|
7
|
30 |
tuioClient = new TuioProcessing(this, port);
|
|
0
|
31 |
textAlign(CENTER);
|
|
|
32 |
imageMode(CENTER);
|
|
|
33 |
smooth();
|
|
|
34 |
}
|
|
|
35 |
|
|
|
36 |
/*FONCTION DE DESSIN
|
|
|
37 |
Entrée :
|
|
|
38 |
Sortie : Appel à la fonction de traitement d'input du serveur toutes les n millisecondes*/
|
|
8
|
39 |
void draw()
|
|
0
|
40 |
{
|
|
|
41 |
fill(0);
|
|
|
42 |
tuioInput();
|
|
|
43 |
noStroke();
|
|
|
44 |
}
|
|
|
45 |
|
|
3
|
46 |
/*FONCTION DE GENERATION DU MASQUE
|
|
|
47 |
Entrée :
|
|
|
48 |
Sortie : Place des rectangles autour de la zone de dessin*/
|
|
8
|
49 |
void showMask()
|
|
3
|
50 |
{
|
|
|
51 |
background(0);
|
|
|
52 |
fill(255);
|
|
|
53 |
rect(0, 80, width, height-130);
|
|
0
|
54 |
}
|
|
7
|
55 |
|
|
|
56 |
/*FONCTION DE RAFFRACHISSEMENT DU TEXTE SUPERIEUR
|
|
|
57 |
Entrée : Texte à afficher
|
|
|
58 |
Sortie : Place un rectangle au dessus de la zone de dessin et raffraichit le texte*/
|
|
8
|
59 |
void refreshText(String txt1, String txt2)
|
|
7
|
60 |
{
|
|
|
61 |
fill(0);
|
|
|
62 |
rect(0, 0, width, 80);
|
|
|
63 |
fill(255);
|
|
|
64 |
text(txt1, width/2 - 20, 20);
|
|
|
65 |
text(txt2, width/2 - 20, 40);
|
|
|
66 |
}
|
|
0
|
67 |
|
|
|
68 |
/*FONCTION DE DESSIN D'UN POINT DE COURBE
|
|
|
69 |
Entrée : Coordonnées X, Y et Z d'un point
|
|
|
70 |
Sortie : Le point est dessiné avec une épaisseur et une luminosité dépendant de Z*/
|
|
|
71 |
void drawEllipse(float x, float y, float z, boolean leftHand)
|
|
|
72 |
{
|
|
3
|
73 |
|
|
|
74 |
fill(0, 0, 255);
|
|
|
75 |
stroke(0,0,0);
|
|
|
76 |
|
|
7
|
77 |
float weight = map(z, minDistHands, maxDistHands, 50, 1);
|
|
|
78 |
float redColor = map(z, minDistHands, maxDistHands, 255, 80);
|
|
3
|
79 |
|
|
0
|
80 |
if(leftHand)
|
|
|
81 |
fill(redColor,0,0);
|
|
|
82 |
else
|
|
|
83 |
fill(0,redColor,0);
|
|
3
|
84 |
|
|
8
|
85 |
if(weight >= 30)
|
|
3
|
86 |
fill(0, 0, redColor);
|
|
|
87 |
|
|
|
88 |
ellipse(x+20, y+100, weight, weight);
|
|
|
89 |
}
|