When last I dabbled in game development, I managed my geometry in a tree. Every node would call the render method on it's children, prior to resetting it's transformations, thus allowing the transforms to propagate. (The typical illustration of how this works is a radar dish spinning, on top of a vehicle that moves. The radar is a child of a autorotator node, which is a child of the vehicle.)
Now I'm at it again, and I learn that transformations are supposed to be done with shaders. Fair enough. What I can't wrap my head around is how to inherit transformations between objects.
Perhaps I´m over thinking it. Is it just a matter of passing the M, V and P matrices down the tree yourself and multiplying them prior to sending them to the shader?
In any case I'd like to hear how other have dealt with this. There is not much out there on this topic.