@Override public void move(int time) { if (!frozen) { disp.fill(0); Vector3 delta = new Vector3(); repE = 0; attE = 0; if (box.viewZone < 0) repulsionN2(delta); else repulsionNLogN(delta); attraction(delta); // int N = neighbours.size(); // if( N > 40 ) // System.err.printf( "* BIG ** [%05d] rep=%05.5f att=%05.5f%n", N, // repE, attE ); // else System.err.printf( // " Small [%05d] rep=%05.5f att=%05.5f%n", N, repE, attE ); disp.scalarMult(box.force); len = disp.length(); if (len > (box.area / 2)) { disp.scalarMult((box.area / 2) / len); len = box.area / 2; } box.avgLength += len; if (len > box.maxMoveLength) box.maxMoveLength = len; } }