code: public static final double[] getZYZEuler(Matrix m) {
  		double m22 = m.get(2,2);
  		double rY = Math.toDegrees(Math.acos(m22));
  		double rZ1, rZ2;
  		if (m22 > .999d || m22 < -.999d) {
  			rZ1 = Math.toDegrees(Math.atan2(m.get(1,0),  m.get(1,1)));
  			rZ2 = 0;
  		} else {
  			rZ1 = Math.toDegrees(Math.atan2(m.get(2,1), -m.get(2,0)));
  			rZ2 = Math.toDegrees(Math.atan2(m.get(1,2),  m.get(0,2)));
  		}
  		return new double[] {rZ1,rY,rZ2};
  	}
docs: Gets euler angles for a matrix given in ZYZ convention. (as e.g. used by
  Jmol)
  
  @param m
  the rotation matrix
  @return the euler values for a rotation around Z, Y, Z in degrees...