private boolean evaluateLacClause(final String clause) {
		if (model instanceof MesoModel)
			return false;
		if (clause == null || clause.equals(""))
			return false;
		String[] sub = clause.split(REGEX_AND);
		TimeSeriesGenerator.Parameter[] par = new TimeSeriesGenerator.Parameter[sub.length];
		for (int n = 0; n < sub.length; n++) {
			int iw = sub[n].toLowerCase().indexOf("within");
			Rectangle2D area = getWithinArea(sub[n].substring(iw).trim());
			if (area == null)
				return false;
			byte[] elements = getElements(sub[n].substring(0, iw - 1));
			if (elements == null)
				return false;
			par[n] = new TimeSeriesGenerator.Parameter(TimeSeriesGenerator.LAC, elements, area);
		}
		if (model.getTapePointer() > 0) {
			((AtomicModel) model).showTimeSeries(par);
		} else {
			short[] count = new short[par.length];
			boolean b = false;
			for (int x = 0; x < par.length; x++) {
				for (int k = 0; k < model.getNumberOfParticles(); k++) {
					b = false;
					for (int i = 0; i < par[x].elements.length; i++) {
						if (par[x].elements[i] == ((Atom) model.getParticle(k)).getID()) {
							b = true;
							break;
						}
					}
					if (!b)
						continue;
					if (model.getParticle(k).isCenterOfMassContained(par[x].area))
						count[x]++;
				}
			}
			String s1 = "";
			for (int i = 0; i < par.length; i++) {
				s1 += count[i] + " atoms of type " + sub[i] + " were counted.\n";
			}
			final String s2 = s1;
			EventQueue.invokeLater(new Runnable() {
				public void run() {
					JOptionPane.showMessageDialog(JOptionPane.getFrameForComponent(view), s2, "Counting results", JOptionPane.INFORMATION_MESSAGE);
				}
			});
		}
		return true;
	}