code: public Matrix4f translationRotateScale(float tx, float ty, float tz, 
                                             float qx, float qy, float qz, float qw, 
                                             float scale) {
          return translationRotateScale(tx, ty, tz, qx, qy, qz, qw, scale, scale, scale);
      }
docs: Set <code>this</code> matrix to <code>T * R * S</code>, where <code>T</code> is a translation by the given <code>(tx, ty, tz)</code>,
  <code>R</code> is a rotation transformation specified by the quaternion <code>(qx, qy, qz, qw)</code>, and <code>S</code> is a scaling transformation
  which scales all three axes by <code>scale</code>.
  <p>
  When transforming a vector by the resulting matrix the scaling transformation will be applied first, then the rotation and
  at last 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).scale(scale)</code>
  
  @see #translation(float, float, float)
  @see #rotate(Quaternionfc)
  @see #scale(float)
  
  @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 qx
  the x-coordinate of the vector part of the quaternion
  @param qy
  the y-coordinate of the vector part of the quaternion
  @param qz
  the z-coordinate of the vector part of the quaternion
  @param qw
  the scalar part of the quaternion
  @param scale
  the scaling factor for all three axes
  @return this