front_processing/src/Smoke_manipulation/Smoke_manipulation.pde
author bastiena
Wed, 30 May 2012 10:21:36 +0200
changeset 35 4267d6d27a7d
parent 27 6c08d4d7219e
child 41 d2f735d7763f
permissions -rw-r--r--
Front IDILL : Config file added dor the Front Random play at the beginning (when no user is detected) Pointers added Curves added (search and filter modes) Mosaic completion added (depletion to come later) State of the Front : just before the communication module creation
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
// smoke2 by Glen Murphy.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    11
// View the applet in use at http://bodytag.org/
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    12
// Code has not been optimised, and will run fairly slowly.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    13
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    14
import TUIO.*;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    15
TuioProcessing tuioClient;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    16
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    17
int realWidth = 640, realHeight = 480-200;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    18
int WIDTH = 300;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    19
int HEIGHT = 300;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    20
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    21
//Port du Client TUIO.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    22
int port = 80;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    23
//Limites de la zone de recherche pour les mains.
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    24
float minDistHands = 1;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    25
float maxDistHands = 1.5;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    26
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    27
int RES = 2;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    28
int PENSIZE = 30;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    29
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    30
int lwidth = WIDTH/RES;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    31
int lheight = HEIGHT/RES;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    32
int PNUM = 30000;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    33
vsquare[][] v = new vsquare[lwidth+1][lheight+1];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    34
vbuffer[][] vbuf = new vbuffer[lwidth+1][lheight+1];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    35
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    36
TuioPoint pt1, pt2, precPt1, precPt2;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    37
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    38
particle[] p = new particle[PNUM];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    39
int pcount = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    40
int mouse1Xvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    41
int mouse1Yvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    42
int mouse2Xvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    43
int mouse2Yvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    44
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    45
int randomGust = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    46
int randomGustMax;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    47
float randomGustX;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    48
float randomGustY;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    49
float randomGustSize;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    50
float randomGustXvel;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    51
float randomGustYvel;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    52
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    53
void setup() {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    54
  size(WIDTH,HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    55
  tuioClient = new TuioProcessing(this, port);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    56
  background(#cccccc);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    57
  noStroke();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    58
  for(int i = 0; i < PNUM; i++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    59
    p[i] = new particle(random(WIDTH/2-20,WIDTH/2+20),random(HEIGHT-20,HEIGHT));
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    60
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    61
  for(int i = 0; i <= lwidth; i++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    62
    for(int u = 0; u <= lheight; u++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    63
      v[i][u] = new vsquare(i*RES,u*RES);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    64
      vbuf[i][u] = new vbuffer(i*RES,u*RES);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    65
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    66
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    67
}
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    68
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    69
void draw() {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    70
  tuioInput();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    71
  
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    72
  int a1xvel = 0, a1yvel = 0, a2xvel = 0, a2yvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    73
  if(precPt1 != null && pt1 != null)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    74
  {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    75
    float X1Rev = map(pt1.getX(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    76
    float Y1Rev = map(pt1.getY(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    77
    float X1PrecRev = map(precPt1.getX(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    78
    float Y1PrecRev = map(precPt1.getY(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    79
    a1xvel = (int)X1Rev-(int)X1PrecRev;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    80
    a1yvel = (int)Y1Rev-(int)Y1PrecRev;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    81
    mouse1Xvel = (a1xvel != mouse1Xvel) ? a1xvel : 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    82
    mouse1Yvel = (a1yvel != mouse1Yvel) ? a1yvel : 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    83
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    84
  if(precPt2 != null && pt2 != null)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    85
  {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    86
    float X2Rev = map(pt2.getX(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    87
    float Y2Rev = map(pt2.getY(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    88
    float X2PrecRev = map(precPt2.getX(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    89
    float Y2PrecRev = map(precPt2.getY(), realWidth, realHeight, WIDTH, HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    90
    a2xvel = (int)X2Rev-(int)X2PrecRev;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    91
    a2yvel = (int)Y2Rev-(int)Y2PrecRev;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    92
    mouse2Xvel = (a2xvel != mouse2Xvel) ? a2xvel : 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    93
    mouse2Yvel = (a2yvel != mouse2Yvel) ? a2yvel : 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    94
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    95
  
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    96
  if(randomGust <= 0) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    97
    if(random(0,10)<1) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    98
      randomGustMax = (int)random(5,12);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    99
      randomGust = randomGustMax;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   100
      randomGustX = random(0,WIDTH);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   101
      randomGustY = random(0,HEIGHT-10);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   102
      randomGustSize = random(0,50);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   103
      if(randomGustX > WIDTH/2) randomGustXvel = random(-8,0);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   104
      else randomGustXvel = random(0,8);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   105
      randomGustYvel = random(-2,1);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   106
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   107
    randomGust--;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   108
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   109
  
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   110
  for(int i = 0; i < lwidth; i++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   111
    for(int u = 0; u < lheight; u++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   112
      vbuf[i][u].updatebuf(i,u);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   113
      v[i][u].col = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   114
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   115
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   116
  for(int i = 0; i < PNUM-1; i++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   117
    p[i].updatepos();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   118
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   119
  for(int i = 0; i < lwidth; i++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   120
    for(int u = 0; u < lheight; u++) {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   121
      v[i][u].addbuffer(i, u);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   122
      v[i][u].updatevels(mouse1Xvel, mouse1Yvel, pt1);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   123
      if(pt2 != null)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   124
        v[i][u].updatevels(mouse2Xvel, mouse2Yvel, pt2);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   125
      v[i][u].display(i, u);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   126
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   127
  }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   128
  randomGust = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   129
}
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   130
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   131
void update(TuioPoint _pt1, TuioPoint _pt2)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   132
{
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   133
  pt1 = _pt1;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
   134
  pt2 = _pt2;
9
0f44b7360c8d Installer updated
bastiena
parents: 8
diff changeset
   135
}