I'd rather keep things simple to explain. A trans if a 4x4 array with rotation and translation.
Then the function can be smart and apply the trans without memory reallocation.
I think we can live with a translation that is for nothing.