void setTapePointer(int n) {
		if (!hasEmbeddedMovie())
			throw new RuntimeException("cannot set pointer because there is no tape");
		modelTimeQueue.setPointer(n);
		for (int i = 0; i < numberOfAtoms; i++) {
			atom[i].moveRPointer(n);
			atom[i].moveVPointer(n);
			atom[i].moveAPointer(n);
		}
		if (obstacles != null && !obstacles.isEmpty()) {
			RectangularObstacle obs = null;
			synchronized (obstacles.getSynchronizationLock()) {
				for (Iterator it = obstacles.iterator(); it.hasNext();) {
					obs = (RectangularObstacle) it.next();
					obs.moveRPointer(n);
					obs.moveVPointer(n);
					obs.moveAPointer(n);
					obs.movePPointer(n);
				}
			}
		}
		if (boundary.getQueue() != null)
			boundary.getQueue().setPointer(n);
		kine.setPointer(n);
		pote.setPointer(n);
		tote.setPointer(n);
		for (FloatQueue q : channelTs)
			q.setPointer(n);
		for (FloatQueue q : kep)
			q.setPointer(n);
	}