Im getting rotation data every frame from a server, the data is a Quat.
I need to cancel out the the rotation data from the server so that it starts in the correct position. Ive managed to do this using Euler rotations but I think it starts to suffer from gimbal lock pretty much right away. How can I do this using either a Basis or a quat.
Here is the euler code:
var tr = Transform(rot_data)
var euler = tr.basis.get_euler()
var init_euler = inital_rotation.basis.get_euler()
euler = init_euler - euler
tr.basis = Basis(euler).orthonormalized()