private void setVisibilityFlags2(BitSet bs) {
		int displayModelIndex = viewer.getDisplayModelIndex();
		boolean isOneFrame = (displayModelIndex >= 0);
		boolean showHydrogens = viewer.getShowHydrogens();
		for (int i = atomCount; --i >= 0;) {
			Atom atom = atoms[i];
			atom.shapeVisibilityFlags &= (~JmolConstants.ATOM_IN_MODEL & ~myVisibilityFlag);
			if (atom.madAtom == JmolConstants.MAR_DELETED || !showHydrogens && atom.getElementNumber() == 1)
				continue;
			if (!isOneFrame && bs.get(atom.modelIndex) || atom.modelIndex == displayModelIndex) {
				atom.shapeVisibilityFlags |= JmolConstants.ATOM_IN_MODEL;
				if (atom.madAtom != 0 && !frame.bsHidden.get(i))
					atom.shapeVisibilityFlags |= myVisibilityFlag;
			}
		}
	}