Rework a lot of space handling in oxr state tracker
Apologies for the big commit, there was no good way to split it up. This fixes several limitations in the space handling in the state tracker and is an initial attempt at cleaning up some technical debt.
I smoke tested what I could, but this definitely needs more testing.
Possible controversial points:
-
initial_head_relation
variable renamed tolocal_space_pure_relation
. helper functions now calledis_local_space_set_up
andset_up_local_space
- whenever one of the new functions tries to use the local space it first checks
is_local_space_set_up
, and if not, callsset_up_local_space
. This means the local space will only be set up to the current HMD position once the application actually starts using local space, which might not be what the user wants. -
set_up_local_space
doesn't take a head pose as a parameter anymore, instead it queries the assigned HMD device itself