private void IterateSceneGraph(SceneNodeCLR node, TreeViewItem position) { TreeViewItem insertedItem = null; //Add Scene Node (The global scene node) if (position == null) { TreeViewItem sceneNode = new TreeViewItem(); sceneNode.Header = node.Name; sceneNode.Tag = node.UUID; int sceneNodeIndex = SceneTreeview.Items.Add(sceneNode); insertedItem = (TreeViewItem)SceneTreeview.Items[sceneNodeIndex]; } else { TreeViewItem subItem = new TreeViewItem(); subItem.Header = node.Name; subItem.Tag = node.UUID; int index = position.Items.Add(subItem); insertedItem = (TreeViewItem)position.Items[index]; } foreach (SceneNodeCLR subNode in node.Nodes) { IterateSceneGraph(subNode, insertedItem); } }
public void UpdateSceneGraph() { SceneTreeview.Items.Clear(); SceneNodeCLR sceneGraph = EngineCore.Instance.SceneEditorInstance.GetSceneGraphCLRTest(); IterateSceneGraph(sceneGraph, null); }