float FRICTION_FORCE=0.8; vector GRAVITY_VECTOR=new vector(270,1); lattice rawr; int nodeAmount=12; boolean useGravity=false; float g_tension=0.25; PFont uifont; void setup() { useRK=true; size(500,500); ellipseMode(CENTER); rectMode(CORNER); rawr=new lattice(nodeAmount); uifont=loadFont("KnockoutHTF30JuniorWelterwt-48.vlw"); smooth(); } void draw() { doUI(); rawr.update(); rawr.drawLattice(); if(mousePressed) { if(rawr.nodes[0]!=null) { rawr.nodes[0].p=new position(mouseX,mouseY); vector mouseVelocity=new vector(new position(pmouseX,pmouseY),new position(mouseX,mouseY)); mouseVelocity.m*=5; rawr.nodes[0].velocity=rawr.nodes[0].velocity.add(mouseVelocity); } } } void keyPressed() { if(key=='+') { if(nodeAmount<100) { nodeAmount++; rawr=new lattice(nodeAmount); rawr.tension=g_tension; } } else if(key=='-') { if(nodeAmount>3) { nodeAmount--; rawr=new lattice(nodeAmount); rawr.tension=g_tension; } } else if(key=='g') { if(useGravity==false) useGravity=true; else useGravity=false; } if(key=='['&&g_tension>0.01) { g_tension-=0.005; rawr.tension=g_tension; } if(key==']'&&g_tension<0.7) { g_tension+=0.005; rawr.tension=g_tension; } if(key=='r') { if(useRK) useRK=false; else useRK=true; } }