front_processing/src/Fluid_manipulation/particle.pde
author bastiena
Thu, 22 Mar 2012 16:00:17 +0100
changeset 8 e4e7db2435f8
child 9 0f44b7360c8d
permissions -rw-r--r--
Processing: New examples implemented : Fluid, Smoke, Interaction examples. Split in one file for the main instructions, one for TUIO stuff. License headers added.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     1
/*
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
*
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
     6
* For the full copyright and license information, please view the LICENSE_FRONT
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
class particle
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    11
{
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    12
    float x;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    13
    float y;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    14
    float xvel;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    15
    float yvel;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    16
    int pos;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    17
    
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    18
    particle(float xIn, float yIn)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    19
    {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    20
        x = xIn;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    21
        y = yIn;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    22
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    23
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    24
    void updatepos()
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    25
    {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    26
        float col1;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    27
        if(x > 0 && x < WIDTH && y > 0 && y < HEIGHT)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    28
        {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    29
            //stroke(#cccccc);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    30
            //line(x,y,x+xvel,y+yvel);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    31
            int vi = (int)(x/RES);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    32
            int vu = (int)(y/RES);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    33
            vsquare o = v[vi][vu];
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    34
            //xvel += o.xvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    35
            //yvel += o.yvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    36
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    37
            float ax = (x%RES)/RES;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    38
            float ay = (y%RES)/RES;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    39
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    40
            xvel += (1-ax)*v[vi][vu].xvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    41
            yvel += (1-ay)*v[vi][vu].yvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    42
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    43
            xvel += ax*v[vi+1][vu].xvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    44
            yvel += ax*v[vi+1][vu].yvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    45
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    46
            xvel += ay*v[vi][vu+1].xvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    47
            yvel += ay*v[vi][vu+1].yvel*0.05;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    48
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    49
            o.col += 4;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    50
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    51
            x += xvel;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    52
            y += yvel;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    53
        }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    54
        else
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    55
        {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    56
            x = random(0,WIDTH);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    57
            y = random(0,HEIGHT);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    58
            xvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    59
            yvel = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    60
        }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    61
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    62
        xvel *= 0.5;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    63
        yvel *= 0.5;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    64
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    65
}