particleSeparation.y = neighbour.position.y - particle.position.y;
final float particleSeparationSquared = particleSeparation.getLengthSqaured();
if (particleSeparationSquared < minDistSq) {
if (particleSeparationSquared > Constants.FLOAT_EPSILON) {
final float distLen = particleSeparation.getLength();
particleSeparation.multiply(0.5f * (distLen - minDist) / distLen);
neighbour.position.subtract(particleSeparation);
neighbour.oldPosition.subtract(particleSeparation);
particle.position.add(particleSeparation);
particle.oldPosition.add(particleSeparation);
}