コード例 #1
0
        private void OnRenameNode(object sender, EventArgs e)
        {
            var node = GetTreeNodeForContextMenuEvent(sender);

            if (node == null || (node.Tag as Node) == null)
            {
                return;
            }
            var sceneNode = (Node)node.Tag;

            SafeRenamer      renamer  = new SafeRenamer(_scene);
            HashSet <string> greylist = renamer.GetAllMeshNames();

            greylist.UnionWith(renamer.GetAllMaterialNames());
            greylist.UnionWith(renamer.GetAllAnimationNames());
            RenameDialog dialog = new RenameDialog(sceneNode.Name, renamer.GetAllNodeNames(), greylist);

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string newName = dialog.NewName;
                string oldName = sceneNode.Name;
                _scene.UndoStack.PushAndDo("Rename Node",
                                           () =>
                {
                    renamer.RenameNode(sceneNode, newName);
                    node.Text = newName;
                },
                                           () =>
                {
                    renamer.RenameNode(sceneNode, oldName);
                    node.Text = oldName;
                });
            }
        }
コード例 #2
0
        private void OnRenameMesh(object sender, EventArgs e)
        {
            var node = GetTreeNodeForContextMenuEvent(sender);

            if (node == null || !(node.Tag as KeyValuePair <Node, Mesh>?).HasValue)
            {
                return;
            }
            var nodeMeshPair = (KeyValuePair <Node, Mesh>)node.Tag;
            var mesh         = nodeMeshPair.Value;

            SafeRenamer      renamer  = new SafeRenamer(_scene);
            HashSet <string> greylist = renamer.GetAllNodeNames();

            greylist.UnionWith(renamer.GetAllMaterialNames());
            greylist.UnionWith(renamer.GetAllAnimationNames());
            // Mesh names need not be unique, but it's good if they are.
            // Don't put in blacklist though.
            greylist.UnionWith(renamer.GetAllMeshNames());
            RenameDialog dialog = new RenameDialog(mesh.Name, new HashSet <string>(), greylist);

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string newName = dialog.NewName;
                string oldName = mesh.Name;
                _scene.UndoStack.PushAndDo("Rename Mesh",
                                           () =>
                {
                    renamer.RenameMesh(mesh, newName);
                },
                                           () =>
                {
                    renamer.RenameMesh(mesh, oldName);
                },
                                           () =>
                {
                    node.Text = GetMeshDisplayName(mesh, GetIndexForMesh(mesh));
                });
            }
        }
コード例 #3
0
        private void OnRenameMesh(object sender, EventArgs e)
        {
            var node = GetTreeNodeForContextMenuEvent(sender);
            if (node == null || !(node.Tag as KeyValuePair<Node, Mesh>?).HasValue)
            {
                return;
            }
            var nodeMeshPair = (KeyValuePair<Node, Mesh>)node.Tag;
            var mesh = nodeMeshPair.Value;

            SafeRenamer renamer = new SafeRenamer(_scene);
            HashSet<string> greylist = renamer.GetAllNodeNames();
            greylist.UnionWith(renamer.GetAllMaterialNames());
            greylist.UnionWith(renamer.GetAllAnimationNames());
            // Mesh names need not be unique, but it's good if they are.
            // Don't put in blacklist though.
            greylist.UnionWith(renamer.GetAllMeshNames());
            RenameDialog dialog = new RenameDialog(mesh.Name, new HashSet<string>(), greylist);

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string newName = dialog.NewName;
                string oldName = mesh.Name;
                _scene.UndoStack.PushAndDo("Rename Mesh",
                    () =>
                    {
                        renamer.RenameMesh(mesh, newName);                       
                    },
                    () =>
                    {
                        renamer.RenameMesh(mesh, oldName);
                    },
                    () =>
                    {
                        node.Text = GetMeshDisplayName(mesh, GetIndexForMesh(mesh));
                    });
            }
        }
コード例 #4
0
        private void OnRenameNode(object sender, EventArgs e)
        {
            var node = GetTreeNodeForContextMenuEvent(sender);
            if (node == null || (node.Tag as Node) == null)
            {
                return;
            }
            var sceneNode = (Node)node.Tag;

            SafeRenamer renamer = new SafeRenamer(_scene);
            HashSet<string> greylist = renamer.GetAllMeshNames();
            greylist.UnionWith(renamer.GetAllMaterialNames());
            greylist.UnionWith(renamer.GetAllAnimationNames());
            RenameDialog dialog = new RenameDialog(sceneNode.Name, renamer.GetAllNodeNames(), greylist);
            
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                string newName = dialog.NewName;
                string oldName = sceneNode.Name;
                _scene.UndoStack.PushAndDo("Rename Node",
                    () =>
                    {
                        renamer.RenameNode(sceneNode, newName);
                        node.Text = newName;
                    },
                    () =>
                    {
                        renamer.RenameNode(sceneNode, oldName);
                        node.Text = oldName;
                    });
            }
        }