class lattice { cell nodes[]; int amount=0; float minDistance=5; float maxDistance=150; float collisionDistance=10; float cohesionDistance=20; float tension=0.7; float collisionTension=.5; float collisionDamping=.4; float springDamping=.35; lattice(int a) { amount=a; nodes=new cell[amount]; for(int nodeIndex=0;nodeIndex15) { stroke(255,255,255,a); // stroke(25,220,80+t); line(nodes[i].x(),nodes[i].y(),nodes[nodes[i].c.output[s]].x(),nodes[nodes[i].c.output[s]].y()); } } for(int v=i;v120) { stroke(150+a,125,115,a); line(nodes[i].x(),nodes[i].y(),nodes[v].x(),nodes[v].y()); } } } } // noStroke(); // fill(205); float vel=nodes[i].velocity.m; // if(i==0) // stroke(155+vel/5*100,40,10+t); // else // stroke(25+vel/5*100,210,220+t); stroke(222,222,222+t); ellipse(nodes[i].x(),nodes[i].y(),5+constrain((vel*1.5),0,4),5+constrain((vel*1.5),0,4)); } } void drawCells() { for(int i=0;i15) { stroke(25,220,80+t); line(nodes[i].x(),nodes[i].y(),nodes[nodes[i].c.output[s]].x(),nodes[nodes[i].c.output[s]].y()); // noStroke(); // fill(25,220,80+t,125); noFill(); ellipse(nodes[i].p,4); } } } } void doCollideSprings() { for(int i=0;imaxDistance&&nodes[i].velocity.m>10) // { // } } } } } void addNode(position pos,gene g) { if(amount