public void apply(float dt, Particle p) {
public void apply(float dt, Particle p, int index) { float dtStr = dt * strength * (random ? FastMath.nextRandomFloat() : 1f);
        public void apply(float dt, Particle p) {            p.getPosition().subtract(line.getOrigin(), v1);            line.getDirection().cross(v1, v2);            if (v2.length() == 0) {                return; // particle is on the axis            }            v2.normalizeLocal();            rot.multLocal(v2);            float tStr = (random ? FastMath.nextRandomFloat() * strength : strength);            p.getVelocity().addLocal(v2.x * tStr * dt,                                     v2.y * tStr * dt,                                     v2.z * tStr * dt);        }