code: public Quaterniond rotationYXZ(double angleY, double angleX, double angleZ) {
          double sx = Math.sin(angleX * 0.5);
          double cx = Math.cosFromSin(sx, angleX * 0.5);
          double sy = Math.sin(angleY * 0.5);
          double cy = Math.cosFromSin(sy, angleY * 0.5);
          double sz = Math.sin(angleZ * 0.5);
          double cz = Math.cosFromSin(sz, angleZ * 0.5);
  
          double x = cy * sx;
          double y = sy * cx;
          double z = sy * sx;
          double w = cy * cx;
          this.x = x * cz + y * sz;
          this.y = y * cz - x * sz;
          this.z = w * sz - z * cz;
          this.w = w * cz + z * sz;
  
          return this;
      }
docs: Set this quaternion from the supplied euler angles (in radians) with rotation order YXZ.
  <p>
  This method is equivalent to calling: <code>rotationY(angleY).rotateX(angleX).rotateZ(angleZ)</code>
  <p>
  Reference: <a href="https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles">https://en.wikipedia.org</a>
  
  @param angleY
  the angle in radians to rotate about y
  @param angleX
  the angle in radians to rotate about x
  @param angleZ
  the angle in radians to rotate about z
  @return this