private void changeUserField(boolean increase) {
		UserField uf = null;
		for (int i = 0, n = getModel().getNumberOfParticles(); i < n; i++) {
			uf = getModel().getParticle(i).getUserField();
			if (uf != null) {
				if (increase)
					uf.increaseGear(1);
				else
					uf.decreaseGear(1);
				if (Math.abs(uf.getIntensity()) > ZERO) { // currently steering
					uf.setIntensity(UserField.INCREMENT * uf.getGear());
				}
			}
		}
		ObstacleCollection oc = getModel().getObstacles();
		if (oc != null && !oc.isEmpty()) {
			synchronized (oc.getSynchronizationLock()) {
				for (Iterator it = oc.iterator(); it.hasNext();) {
					uf = ((RectangularObstacle) it.next()).getUserField();
					if (uf != null) {
						if (increase)
							uf.increaseGear(1);
						else
							uf.decreaseGear(1);
						if (Math.abs(uf.getIntensity()) > ZERO) {// currently steering
							uf.setIntensity(UserField.INCREMENT * uf.getGear());
						}
					}
				}
			}
		}
	}