private void paintMirrorBonds(Graphics2D g2) {
		if (!showMirrorImages)
			return;
		g2.setColor(contrastBackground());
		g2.setStroke(ViewAttribute.THIN_DOTTED);
		float len, cos, sin, x1, x2, y1, y2;
		Line2D.Float l2d;
		synchronized (mirrorBonds) {
			for (Iterator it = mirrorBonds.iterator(); it.hasNext();) {
				l2d = (Line2D.Float) it.next();
				x1 = l2d.x1;
				x2 = l2d.x2;
				y1 = l2d.y1;
				y2 = l2d.y2;
				len = (float) Math.hypot(x1 - x2, y1 - y2);
				cos = (x2 - x1) / len;
				sin = (y2 - y1) / len;
				g2.drawLine((int) (x2 - sin * 2), (int) (y2 + cos * 2), (int) (x1 - sin * 2), (int) (y1 + cos * 2));
				g2.drawLine((int) (x2 + sin * 2), (int) (y2 - cos * 2), (int) (x1 + sin * 2), (int) (y1 - cos * 2));
			}
		}
	}