if (parent.getRandomMod() != 0.0f) { position.addLocal(parent.getRandomMod() * 2 * (FastMath.nextRandomFloat() - .5f), 0.0f, parent .getRandomMod() * 2 * (FastMath.nextRandomFloat() - .5f)); }
    public boolean updateAndCheck(float secondsPassed) {        int verts = ParticleGeometry.getVertsForParticleType(type);        if (status != ALIVE) {            return true;        }        currentAge += secondsPassed * 1000; // add ms time to age        if (currentAge > lifeSpan) {            status = DEAD;            currColor.a = 0;                        BufferUtils.populateFromBuffer(tempVec, parent.getVertexBuffer(0), startIndex);            for (int x = 0; x < verts; x++) {                BufferUtils.setInBuffer(tempVec, parent.getVertexBuffer(0), startIndex+x);                BufferUtils.setInBuffer(currColor, parent.getColorBuffer(0), startIndex+x);            }            return true;        }                position.scaleAdd(secondsPassed * 1000f, velocity, position);        spinAngle = spinAngle + parent.getParticleSpinSpeed() * secondsPassed;        if (parent.getRandomMod() != 0.0f) {            position.addLocal(parent.getRandomMod() * 2                    * (FastMath.nextRandomFloat() - .5f), 0.0f, parent                    .getRandomMod()                    * 2 * (FastMath.nextRandomFloat() - .5f));        }        float lifeRatio = currentAge / lifeSpan;        // update the size        currentSize = parent.getStartSize();        currentSize -= ((currentSize - parent.getEndSize()) * lifeRatio);                // interpolate colors        currColor.set(startColor);        currColor.r -= rChange * lifeRatio;        currColor.g -= gChange * lifeRatio;        currColor.b -= bChange * lifeRatio;        currColor.a -= aChange * lifeRatio;        for (int x = 0; x < verts; x++)            BufferUtils.setInBuffer(currColor, parent.getColorBuffer(0), startIndex+x);        return false;    }