code: public Matrix3f rotate(float angle, Vector3fc axis) {
          return rotate(angle, axis.x(), axis.y(), axis.z());
      }
docs: Apply a rotation transformation, rotating the given radians about the specified axis, to this matrix.
  <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>A</code> the rotation matrix obtained from the given angle and axis,
  then the new matrix will be <code>M * A</code>. So when transforming a
  vector <code>v</code> with the new matrix by using <code>M * A * v</code>,
  the axis-angle rotation will be applied first!
  <p>
  In order to set the matrix to a rotation transformation without post-multiplying,
  use {@link #rotation(float, Vector3fc)}.
  <p>
  Reference: <a href="http://en.wikipedia.org/wiki/Rotation_matrix#Axis_and_angle">http://en.wikipedia.org</a>
  
  @see #rotate(float, float, float, float)
  @see #rotation(float, Vector3fc)
  
  @param angle
  the angle in radians
  @param axis
  the rotation axis (needs to be {@link Vector3f#normalize() normalized})
  @return this