// -------------------------------------------------------------------- private void AddSceneObjectToTreeNode(TreeNode node, SceneObject sceneObject) { SceneTreeNode objectNode = new SceneTreeNode(sceneObject); if (node == null) { objectNode.ImageIndex = SupportFileFound ? sUpdateAssetIcon : sNewAssetIcon; modelTreeView.Nodes.Add(objectNode); } else { if (SupportFileFound) { objectNode.ImageIndex = mSupportFile.GetMeshId(sceneObject.Id) > 0 ? sUpdateAssetIcon : sNewAssetIcon; } else { objectNode.ImageIndex = sNewAssetIcon; } node.Nodes.Add(objectNode); } objectNode.SelectedImageIndex = objectNode.ImageIndex; sceneObject.ForEachChild((c) => { AddSceneObjectToTreeNode(objectNode, c); }); }
private void AddSceneObjectToTreeNode(TreeNode node, SceneObject sceneObject, bool skipAdd) { SceneTreeNode objectNode = new SceneTreeNode(sceneObject); if (!skipAdd) { node.Nodes.Add(objectNode); } for (int i = 0; i < sceneObject.ChildCount; ++i) { AddSceneObjectToTreeNode(skipAdd ? node : objectNode, sceneObject.GetChild(i), false); } }
private void treeViewSceneHierarchy_NodeSelected(object sender, TreeViewEventArgs e) { if (e.Node.GetType() != typeof(SceneTreeNode)) { SelectObject(null); return; } SceneTreeNode sceneTreeeNode = (SceneTreeNode)e.Node; if (sceneTreeeNode != null) { SelectObject(sceneTreeeNode.BoundSceneObject); } }
// -------------------------------------------------------------------- private void treeViewScene_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node.GetType() != typeof(SceneTreeNode) && mEntityProxy != null) { ExitEntity(); NotifyChange(); return; } else if (e.Node.GetType() == typeof(SceneTreeNode)) { SceneTreeNode node = (SceneTreeNode)e.Node; EntityProxy proxy = node.BoundSceneObject as EntityProxy; if (proxy != null) { EnterEntity(proxy); NotifyChange(); } } }
// -------------------------------------------------------------------- private void treeViewScene_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node.GetType() != typeof(SceneTreeNode)) { if (mExpandedEntity != null) { AssetLoader <Entity> .Save(mExpandedEntity, mExpandedEntity.LinkedProjectAsset.Path); mExpandedEntity = null; } SetScene(mScene); return; } SceneTreeNode node = (SceneTreeNode)e.Node; EntityProxy entity = node.BoundSceneObject as EntityProxy; if (entity != null) { SetObject(entity.EntityRef.Root); mExpandedEntity = entity.EntityRef; } }
// -------------------------------------------------------------------- private void treeViewScene_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node.GetType() != typeof(SceneTreeNode)) { Selection.Clear(); return; } SceneTreeNode sceneTreeNode = (SceneTreeNode)e.Node; if (sceneTreeNode != null) { mPrevSelected = sceneTreeNode; if (ModifierKeys.HasFlag(Keys.Control)) { Selection.Add(sceneTreeNode.BoundSceneObject); } else { Selection.ActiveObject = sceneTreeNode.BoundSceneObject; } } }