|
Also, I think Nian already gave you the answer in this post: :)
http://area.autodesk.com/forum/autodesk-fbx/fbx-sdk/unlinking-a-node/
Although there is no way to direct set the global transform in FBX, but we can get the global transform by AnimEvaluator. Then we can always get the local transform of a node by: Local = ParentGlobal.Inverse() * Global;
So in you case, if you want to keep the global transform of a node after re-link it, what you need to do is(in pseudo code):
Global = lChild->GetGlobalTransfrom;
Move lChild to somewhere else in the hierarchy (re-link lChild);
NewLocal = NewParentGlobal.Inverse() * Global;
lChild->SetNewLocal;
Author: Jiayang Xu
|