private ModelComponent getSelectedComponent(int modifiers, int x, int y) {
		ModelComponent lc = null;
		if ((modifiers & MouseEvent.SHIFT_DOWN_MASK) != MouseEvent.SHIFT_DOWN_MASK) {
			lc = whichLayeredComponent(x, y);
			if (lc != null && ((Layered) lc).getLayer() == Layered.IN_FRONT_OF_PARTICLES) {
				lc.setSelected(true);
				clickPoint.setLocation(x - lc.getRx(), y - lc.getRy());
				return selectedComponent;
			}
		}
		GayBerneParticle p = whichParticle(x, y);
		if (p != null) {
			p.setSelected(true);
			clickPoint.setLocation(x - p.getRx(), y - p.getRy());
			return p;
		}
		if (lc != null && ((Layered) lc).getLayer() == Layered.BEHIND_PARTICLES) {
			lc.setSelected(true);
			clickPoint.setLocation(x - lc.getRx(), y - lc.getRy());
			return selectedComponent;
		}
		return null;
	}