Transformation around arbitrary point

All transformations (translate/rotate/scale) in CesiumJS are applied to the 3d tile origin.
(an example of this is the widget used on Cesium Ion which allows the user to translate/rotate/scale assets by visually adjusting the transformation of an asset. It applies the all transformations at the 3d tile origin)

I have the coordinates of the point in space which I want to use as the new reference point (instead of the asset origin)
How would I go about using that new reference point for all the transformations (translate/rotate/scale)?
How do I transform the position/rotation/scale values at an arbitrary point in space to the asset origin (for CesiumJS to display the asset at the correct location)?

Any help would be appreciated.