code: public Matrix4f rotateAffineZYX(float angleZ, float angleY, float angleX) {
          return rotateAffineZYX(angleZ, angleY, angleX, thisOrNew());
      }
docs: Apply rotation of <code>angleZ</code> radians about the Z axis, followed by a rotation of <code>angleY</code> radians about the Y axis and
  followed by a rotation of <code>angleX</code> radians about the X axis.
  <p>
  When used with a right-handed coordinate system, the produced rotation will rotate a vector
  counter-clockwise around the rotation axis, when viewing along the negative axis direction towards the origin.
  When used with a left-handed coordinate system, the rotation is clockwise.
  <p>
  This method assumes that <code>this</code> matrix represents an {@link #isAffine() affine} transformation (i.e. its last row is equal to <code>(0, 0, 0, 1)</code>)
  and can be used to speed up matrix multiplication if the matrix only represents affine transformations, such as translation, rotation, scaling and shearing (in any combination).
  <p>
  If <code>M</code> is <code>this</code> matrix and <code>R</code> the rotation matrix,
  then the new matrix will be <code>M * R</code>. So when transforming a
  vector <code>v</code> with the new matrix by using <code>M * R * v</code>, the
  rotation will be applied first!
  
  @param angleZ
  the angle to rotate about Z
  @param angleY
  the angle to rotate about Y
  @param angleX
  the angle to rotate about X
  @return a matrix holding the result