front_processing/src/Interaction_examples/Hand_signal/Hand_signal.pde
author bastiena
Thu, 12 Apr 2012 13:09:46 +0200
changeset 27 6c08d4d7219e
parent 10 925b7ee746e3
child 41 d2f735d7763f
permissions -rw-r--r--
Middleware : GPL License added. Front Processing : GPL License added. Front IDILL : extern altered to send TUIO cursors from Middleware to Front. implemented as a plugin.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
925b7ee746e3 Front Processing :
bastiena
parents: 9
diff changeset
     1
/*
8
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     2
* This file is part of the TraKERS\Front Processing package.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     3
*
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     4
* (c) IRI <http://www.iri.centrepompidou.fr/>
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     5
*
27
6c08d4d7219e Middleware :
bastiena
parents: 10
diff changeset
     6
* For the full copyright and license information, please view the LICENSE
8
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     7
* file that was distributed with this source code.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     8
*/
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     9
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    10
/*Exemple tiré de processing.org*/
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    11
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    12
import TUIO.*;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    13
TuioProcessing tuioClient;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    14
int port = 80;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    15
//Taille de la fenêtre
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    16
int WIDTH = 640, HEIGHT = 480;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    17
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    18
float minDistHands = 1, maxDistHands = 1.5;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    19
//Distance de "click" minimum/maximum avec la main.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    20
float minClickHand = minDistHands+0.2, maxClickHand = maxDistHands-0.2;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    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).
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    22
int X, Y;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    23
boolean clicked;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    24
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    25
int[] xvals;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    26
int[] yvals;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    27
int[] bvals;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    28
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    29
void setup() 
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    30
{
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    31
  size(WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    32
  tuioClient = new TuioProcessing(this, port);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    33
  xvals = new int[width];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    34
  yvals = new int[width];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    35
  bvals = new int[width];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    36
}
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    37
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    38
int arrayindex = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    39
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    40
void draw()
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    41
{
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    42
  tuioInput();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    43
  background(102);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    44
  
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    45
  for(int i=1; i<width; i++) { 
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    46
    xvals[i-1] = xvals[i]; 
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    47
    yvals[i-1] = yvals[i];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    48
    bvals[i-1] = bvals[i];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    49
  } 
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    50
  // Add the new values to the end of the array 
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    51
  xvals[width-1] = X; 
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    52
  yvals[width-1] = Y;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    53
  if(clicked) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    54
    bvals[width-1] = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    55
  } else {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    56
    bvals[width-1] = 255;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    57
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    58
  
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    59
  fill(255);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    60
  noStroke();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    61
  rect(0, height/3, width, height/3+1);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    62
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    63
  for(int i=1; i<width; i++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    64
    stroke(255);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    65
    point(i, xvals[i]/3);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    66
    stroke(0);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    67
    point(i, height/3+yvals[i]/3);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    68
    stroke(255);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    69
    line(i, 2*height/3+bvals[i]/3, i, (2*height/3+bvals[i-1]/3));
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    70
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    71
}
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    72
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    73
/*MET A JOUR X et Y
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    74
Entrée : Les positions d'un point 2D
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    75
Sortie : Met à jour X et Y et si la main a "clické"*/
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    76
void update(int x, int y, boolean click)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    77
{
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    78
  X = x;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    79
  Y = y;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    80
  clicked = click;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    81
}