Esempio n. 1
0
        private bool ProcessDrag(Event @event)
        {
            if (NewEdge)
            {
                //Avoid dragging during a new edge drawing
                return(false);
            }

            if (@event.button == 1)
            {
                foreach (var node in _graph.Nodes)
                {
                    node.Position += Zoomed(@event.delta);
                }
                _graph.Offset += Zoomed(@event.delta);
                @event.Use();
                return(true);
            }

            if (_selector.IsEmpty)
            {
                return(false);
            }

            //Dragging of selected nodes
            foreach (var node in _selector)
            {
                _graph.GetNode(node).Position += Zoomed(@event.delta);
            }

            @event.Use();
            return(true);
        }
Esempio n. 2
0
        public void Paste(Vector2 position)
        {
            _selector.Clean();
            var nodes  = _copyBuffer.Select(x => _graph.GetNode(x)).ToList();
            var offset = GetPositionOffset(position, nodes);

            var map = PasteNodes(nodes, offset);

            PasteEdges(map);

            _selector.Add(map.Values.Select(_graph.GetNode));
            GUI.changed = true;
        }