Ejemplo n.º 1
0
        // --------------------------------------------------------------------

        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);
            });
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        // --------------------------------------------------------------------

        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();
                }
            }
        }
Ejemplo n.º 5
0
        // --------------------------------------------------------------------

        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;
            }
        }
Ejemplo n.º 6
0
        // --------------------------------------------------------------------

        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;
                }
            }
        }