Set <code>this</code> matrix to <code>T * R * S * M</code>, where <code>T</code> is a translation by the given <code>(tx, ty, tz)</code>,
<code>R</code> is a rotation - and possibly scaling - transformation specified by the quaternion <code>(qx, qy, qz, qw)</code>, <code>S</code> is a scaling transformation
which scales the three axes x, y and z by <code>(sx, sy, sz)</code> and <code>M</code> is an {@link #isAffine() affine} matrix.
<p>
When transforming a vector by the resulting matrix the transformation described by <code>M</code> will be applied first, then the scaling, then 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(sx, sy, sz).mulAffine(m)</code>
@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 sx
the scaling factor for the x-axis
@param sy
the scaling factor for the y-axis
@param sz
the scaling factor for the z-axis
@param m
the {@link #isAffine() affine} matrix to multiply by
@return this
Set <code>this</code> matrix to <code>T * R * S * M</code>, where <code>T</code> is a translation by the given <code>(tx, ty, tz)</code>, <code>R</code> is a rotation - and possibly scaling - transformation specified by the quaternion <code>(qx, qy, qz, qw)</code>, <code>S</code> is a scaling transformation which scales the three axes x, y and z by <code>(sx, sy, sz)</code> and <code>M</code> is an {@link #isAffine() affine} matrix. <p> When transforming a vector by the resulting matrix the transformation described by <code>M</code> will be applied first, then the scaling, then 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(sx, sy, sz).mulAffine(m)</code>
@see #translation(double, double, double) @see #rotate(ref Quaterniond) @see #scale(double, double, double) @see #mulAffine(Matrix4d)
@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 sx the scaling factor for the x-axis @param sy the scaling factor for the y-axis @param sz the scaling factor for the z-axis @param m the {@link #isAffine() affine} matrix to multiply by @return this