front_processing/src/Fluid_manipulation/particle.pde
changeset 8 e4e7db2435f8
child 9 0f44b7360c8d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/src/Fluid_manipulation/particle.pde	Thu Mar 22 16:00:17 2012 +0100
@@ -0,0 +1,65 @@
+/*
+* This file is part of the TraKERS\Front Processing package.
+*
+* (c) IRI <http://www.iri.centrepompidou.fr/>
+*
+* For the full copyright and license information, please view the LICENSE_FRONT
+* file that was distributed with this source code.
+*/
+
+class particle
+{
+    float x;
+    float y;
+    float xvel;
+    float yvel;
+    int pos;
+    
+    particle(float xIn, float yIn)
+    {
+        x = xIn;
+        y = yIn;
+    }
+
+    void updatepos()
+    {
+        float col1;
+        if(x > 0 && x < WIDTH && y > 0 && y < HEIGHT)
+        {
+            //stroke(#cccccc);
+            //line(x,y,x+xvel,y+yvel);
+            int vi = (int)(x/RES);
+            int vu = (int)(y/RES);
+            vsquare o = v[vi][vu];
+            //xvel += o.xvel*0.05;
+            //yvel += o.yvel*0.05;
+
+            float ax = (x%RES)/RES;
+            float ay = (y%RES)/RES;
+
+            xvel += (1-ax)*v[vi][vu].xvel*0.05;
+            yvel += (1-ay)*v[vi][vu].yvel*0.05;
+
+            xvel += ax*v[vi+1][vu].xvel*0.05;
+            yvel += ax*v[vi+1][vu].yvel*0.05;
+
+            xvel += ay*v[vi][vu+1].xvel*0.05;
+            yvel += ay*v[vi][vu+1].yvel*0.05;
+
+            o.col += 4;
+
+            x += xvel;
+            y += yvel;
+        }
+        else
+        {
+            x = random(0,WIDTH);
+            y = random(0,HEIGHT);
+            xvel = 0;
+            yvel = 0;
+        }
+
+        xvel *= 0.5;
+        yvel *= 0.5;
+    }
+}