/// <summary> /// Initialise the side tree view to show the scene. /// </summary> private void InitFillTreeFromWorldSingleEntity() { this.treeView_entity_info.Nodes.Clear(); // make root node and build whole tree var root_nd = new SceneTreeNode("root"); // make entity tree var ent_one = new EntityTreeNode(_world._enttity_one.Name); ent_one.DrawMeshBounds = new BoundingBoxGroup(_world._enttity_one._extra_geometry._mesh_id2box.Values); // make entity mesh MeshTreeNode ent_mesh_nodes = MakeMeshTree(_world._enttity_one, _world._enttity_one._node); // make entity armature ArmatureTreeNode ent_arma_nodes = MakeArmatureTree(_world._enttity_one, _world._enttity_one._armature); root_nd.Nodes.Add(ent_one); ent_one.Nodes.Add(ent_mesh_nodes); ent_one.Nodes.Add(ent_arma_nodes); ent_arma_nodes.BackColor = Color.LightBlue; ent_mesh_nodes.BackColor = Color.LightGreen; ent_one.BackColor = Color.Gold; // attach and refresh this.treeView_entity_info.Nodes.Add(root_nd); // show the entity node // ent_one.EnsureVisible(); this.treeView_entity_info.ExpandAll(); ent_arma_nodes.EnsureVisible(); this.treeView_entity_info.Invalidate(); }
private ArmatureTreeNode MakeArmatureTree(Entity ent, BoneNode nd) { var current = new ArmatureTreeNode(nd._inner.Name); current.DrawData = ent._extra_geometry._bone_id2triangle[nd._inner.Name]; foreach (var child_nd in nd.Children) { var treeview_child = MakeArmatureTree(ent, child_nd); current.Nodes.Add(treeview_child); } return(current); }