The readTransformAsMatrix will return the local transform applied to the object, it's not in world space. I believe that you need to recursively concatenate the matrices from the scene returned by SceneShapeInterface::sceneInterface() up to the selected one.