Each node in an FBX scene has exactly one parent node (with the exception of the root node, which has no parent).
Each node can have zero, one or many child nodes (0..n).
To display the scene graph as a tree, SceneTreeView displays the root node, and visits and displays each of its children. More precisely, it recursively visits and displays all the children, grandchildren, etc. of each of the root node’s children:
// used to add the rootNode name and start to add children nodes
void DisplayHierarchy(
const HWND hTv
)
{
HTREEITEM htvi = InsertTreeViewItem(hTv, GetRootNodeName(), TVI_ROOT);
for(int i = 0; i < GetRootNode()->GetChildCount(); i++)
{
DisplayHierarchy_Recurse(GetRootNode()->GetChild(i), hTv, htvi);
}
}
...
for(int i = 0; i < pNode->GetChildCount(); i++)
{
// recursively call this
DisplayHierarchy_Recurse(pNode->GetChild(i), hTv, htvi);
}
FBX File Format (.fbx) versions 1.0 to 6.1 do not allow duplicate node names.
You can also get from a node a reference to its parent, as well as to the scene that contains it:
KFbxNode MyParentNode = pNode->GetParent();
KFbxScene MyScene = pNode->GetScene();
In general, all relationships in FBX are two-way. For example: