code: public Matrix4f translationRotate(float tx, float ty, float tz, Quaternionfc quat) {
          return translationRotate(tx, ty, tz, quat.x(), quat.y(), quat.z(), quat.w());
      }
docs: Set <code>this</code> matrix to <code>T * R</code>, where <code>T</code> is a translation by the given <code>(tx, ty, tz)</code> and
  <code>R</code> is a rotation - and possibly scaling - transformation specified by the given quaternion.
  <p>
  When transforming a vector by the resulting matrix the rotation - and possibly scaling - transformation will be applied first and then the translation.
  <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 is equivalent to calling: <code>translation(tx, ty, tz).rotate(quat)</code>
  
  @see #translation(float, float, float)
  @see #rotate(Quaternionfc)
  
  @param tx
  the number of units by which to translate the x-component
  @param ty
  the number of units by which to translate the y-component
  @param tz
  the number of units by which to translate the z-component
  @param quat
  the quaternion representing a rotation
  @return this