code: public Matrix4x3d translationRotateScale(Vector3dc translation, 
                                             Quaterniondc quat, 
                                             Vector3dc scale) {
          return translationRotateScale(translation.x(), translation.y(), translation.z(), quat.x(), quat.y(), quat.z(), quat.w(), scale.x(), scale.y(), scale.z());
      }
docs: Set <code>this</code> matrix to <code>T * R * S</code>, where <code>T</code> is the given <code>translation</code>,
  <code>R</code> is a rotation transformation specified by the given quaternion, and <code>S</code> is a scaling transformation
  which scales the 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(translation).rotate(quat).scale(scale)</code>
  
  @see #translation(Vector3dc)
  @see #rotate(Quaterniondc)
  
  @param translation
  the translation
  @param quat
  the quaternion representing a rotation
  @param scale
  the scaling factors
  @return this