So when I'm rotating I can simply multiply the old_rotation by the new_rotation? The only difference between world and local being I translate local back to the origin before rotating?
I'm a bit confused as to how you tell the difference between a world and local rotation if the translation is in a separate matrix. As of now I'm storing my world and local rotation separately and multiplying world * translation* local, which seems to work fine but do you know how it's usually done?
4. That's an interesting idea, as of now the child is not in respect to the parent but your method looks very elegant.
Thank you very much that helped a lot.