public void changeSpeed(SmartblobTri blob, float secondsSinceLastCall) {
   float minSq = minSpeed * minSpeed;
   float maxSq = maxSpeed * maxSpeed;
   for (MovCorner c : blob.allMovCorners()) {
     float dy = c.speedY, dx = c.speedX;
     float speedSq = dy * dy + dx * dx;
     if (minSq <= speedSq && speedSq <= maxSq) continue;
     if (speedSq == 0)
       continue; // rare. it will be pushed on by springs and probably have nonzero speed next
                 // time.
     float speed = (float) Math.sqrt(speedSq);
     float newSpeed = Math.max(minSpeed, Math.min(speed, maxSpeed));
     float mult = newSpeed / speed;
     c.speedY *= mult;
     c.speedX *= mult;
   }
 }