It is called ID3DXMatrixStack, and is very user friendly if you are going to move more then one thing after each other. Like if you have a body, and you want to move the uper arm, then the lower arm, and then the hand and so on. If you have the docs (at least in the 9.0c docs, there is a realy nice example with a small algo to help you.


It is done pretty similar to the way you do it in OpenGL, but in DX you must manually push/pop matrices onto/off of the stack and pass them to IDirect3DDevice9::SetTransform() before they become the active matrices. It doesn't pop it automaticaly like it is done in OpenGL.