class Chunk { Vec position; Vec movement; Vec acceleration; Vec acc=new Vec(); color col=color(random(128,255),random(128,255),random(128,255)); color colAlp=color(red(col),green(col),blue(col),40); boolean drawTraces=true; Chunk tmpChunk; float radius; double mass; double MASS_FACTOR=0.05; Vec[] pastPositions; int maxPastPositions=20; Chunk(float mW, float mH) { position=new Vec(random(-0.5*mW,0.5*mW),random(-0.2*mH,0.2*mH),random(-0.5*mW,0.5*mW)); movement=new Vec(random(-2,2),random(-0.2,0.2),random(-2,2)); movement.mul(MASS_FACTOR*10.0); acceleration=new Vec(0,0,0); radius=2*random(0.5,2.0); mass=4/3.0 * PI * pow(radius,3) / 10.0; pastPositions=new Vec[maxPastPositions]; for (int i=0;i0;i--) pastPositions[i].setVec(pastPositions[i-1]); pastPositions[0].setVec(position); acceleration.setVec(0,0,0); for (int i=0;i=minDist2) F=mass2/d2; Vec a=new Vec(dx*F,dy*F,dz*F); return a; } }