front_processing/src/Fluid_manipulation/vsquare.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 vsquare
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    11
{
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    12
    int x;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    13
    int 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
    float col;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    17
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    18
    vsquare(int xIn,int 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 addbuffer(int i, int u)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    25
    {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    26
        if(i>0 && i<lwidth && u>0 && u<lheight)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    27
        {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    28
            xvel += (vbuf[i-1][u-1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    29
            +vbuf[i-1][u].pressure
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    30
            +vbuf[i-1][u+1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    31
            -vbuf[i+1][u-1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    32
            -vbuf[i+1][u].pressure
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    33
            -vbuf[i+1][u+1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    34
            )*0.25;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    35
            yvel += (vbuf[i-1][u-1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    36
            +vbuf[i][u-1].pressure
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    37
            +vbuf[i+1][u-1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    38
            -vbuf[i-1][u+1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    39
            -vbuf[i][u+1].pressure
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    40
            -vbuf[i+1][u+1].pressure*0.5
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    41
            )*0.25;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    42
        }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    43
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    44
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    45
    void updatevels(int mvelX, int mvelY, TuioPoint pt)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    46
    {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    47
        if(pt != null)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    48
        {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    49
            float adj = x - pt.getX();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    50
            float opp = y - pt.getY();
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    51
            float dist = sqrt(opp*opp + adj*adj);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    52
            if(dist < PENSIZE)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    53
            {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    54
                if(dist < 4) dist = PENSIZE;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    55
                float mod = PENSIZE/dist;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    56
                xvel += mvelX*mod;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    57
                yvel += mvelY*mod;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    58
            }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    59
        }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    60
    
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    61
        xvel *= 0.99;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    62
        yvel *= 0.99;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    63
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    64
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    65
    void display(int i, int u)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    66
    {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    67
        float tcol = 0;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    68
        if(col > 255) col = 255;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    69
        if(i>0 && i<lwidth-1 && u>0 && u<lheight-1)
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    70
        {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    71
            tcol = (+ v[i][u+1].col + v[i+1][u].col + v[i+1][u+1].col*0.5)*0.4;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    72
            tcol = (int)(tcol+col*0.5);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    73
        }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    74
        else
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    75
        {
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    76
            tcol = (int)col;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    77
        }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    78
        fill(tcol, tcol, tcol);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    79
        rect(x,y,RES,RES);
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    80
        //col = 32;
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    81
    }
e4e7db2435f8 Processing:
bastiena
parents:
diff changeset
    82
}