Making a parenting system Each Entity can have one parent and any number of children. They have a position vector and a quaternion orientation. I know that I can make objects look like they're in a hierarchy by multiplying parent transforms all the way to the root, but how to I get the canonical coordinates out of those transformations? I need to have the real position of every Entity in the world in order to update their bounding meshes. I would like to keep my drawing code for everything as just this XMMATRIX transform XMMatrixRotationQuaternion(orientation) transform XMMatrixMultiply(transform, XMMatrixTranslation(position)) transform XMMatrixMultiply(world, transform) model gt Draw(context, states, transform, view, projection) Eg. without relying on visual tricks to get the hierarchy looking right, so no multiplications with parent transforms while rendering. How do I properly change a child's position and orientation with respect to the parent?