|
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 |
|
|
|
10 |
/*Exemple tiré de processing.org*/
|
|
|
11 |
|
|
|
12 |
import TUIO.*;
|
|
|
13 |
TuioProcessing tuioClient;
|
|
41
|
14 |
int port = 8080;
|
|
8
|
15 |
//Taille de la fenêtre
|
|
|
16 |
int WIDTH = 640, HEIGHT = 480;
|
|
|
17 |
|
|
|
18 |
float minDistHands = 1, maxDistHands = 1.5;
|
|
|
19 |
//Distance de "click" minimum/maximum avec la main.
|
|
|
20 |
float minClickHand = minDistHands+0.2, maxClickHand = maxDistHands-0.2;
|
|
|
21 |
//Définit les coordonnées de la main la plus proche et si elle a cliqué (se trouve dans une certaine zone du champ d'intéraction).
|
|
|
22 |
int X, Y;
|
|
|
23 |
boolean clicked;
|
|
|
24 |
|
|
|
25 |
int[] xvals;
|
|
|
26 |
int[] yvals;
|
|
|
27 |
int[] bvals;
|
|
|
28 |
|
|
|
29 |
void setup()
|
|
|
30 |
{
|
|
|
31 |
size(WIDTH, HEIGHT);
|
|
|
32 |
tuioClient = new TuioProcessing(this, port);
|
|
|
33 |
xvals = new int[width];
|
|
|
34 |
yvals = new int[width];
|
|
|
35 |
bvals = new int[width];
|
|
|
36 |
}
|
|
|
37 |
|
|
|
38 |
int arrayindex = 0;
|
|
|
39 |
|
|
|
40 |
void draw()
|
|
|
41 |
{
|
|
|
42 |
tuioInput();
|
|
|
43 |
background(102);
|
|
|
44 |
|
|
|
45 |
for(int i=1; i<width; i++) {
|
|
|
46 |
xvals[i-1] = xvals[i];
|
|
|
47 |
yvals[i-1] = yvals[i];
|
|
|
48 |
bvals[i-1] = bvals[i];
|
|
|
49 |
}
|
|
|
50 |
// Add the new values to the end of the array
|
|
|
51 |
xvals[width-1] = X;
|
|
|
52 |
yvals[width-1] = Y;
|
|
|
53 |
if(clicked) {
|
|
|
54 |
bvals[width-1] = 0;
|
|
|
55 |
} else {
|
|
|
56 |
bvals[width-1] = 255;
|
|
|
57 |
}
|
|
|
58 |
|
|
|
59 |
fill(255);
|
|
|
60 |
noStroke();
|
|
|
61 |
rect(0, height/3, width, height/3+1);
|
|
|
62 |
|
|
|
63 |
for(int i=1; i<width; i++) {
|
|
|
64 |
stroke(255);
|
|
|
65 |
point(i, xvals[i]/3);
|
|
|
66 |
stroke(0);
|
|
|
67 |
point(i, height/3+yvals[i]/3);
|
|
|
68 |
stroke(255);
|
|
|
69 |
line(i, 2*height/3+bvals[i]/3, i, (2*height/3+bvals[i-1]/3));
|
|
|
70 |
}
|
|
|
71 |
}
|
|
|
72 |
|
|
|
73 |
/*MET A JOUR X et Y
|
|
|
74 |
Entrée : Les positions d'un point 2D
|
|
|
75 |
Sortie : Met à jour X et Y et si la main a "clické"*/
|
|
|
76 |
void update(int x, int y, boolean click)
|
|
|
77 |
{
|
|
|
78 |
X = x;
|
|
|
79 |
Y = y;
|
|
|
80 |
clicked = click;
|
|
|
81 |
}
|