code: public Matrix3f rotateXYZ(Vector3f angles) {
          return rotateXYZ(angles.x, angles.y, angles.z);
      }
docs: Apply rotation of <code>angles.x</code> radians about the X axis, followed by a rotation of <code>angles.y</code> radians about the Y axis and
  followed by a rotation of <code>angles.z</code> radians about the Z 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>
  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!
  <p>
  This method is equivalent to calling: <code>rotateX(angles.x).rotateY(angles.y).rotateZ(angles.z)</code>
  
  @param angles
  the Euler angles
  @return this