Example #1
0
        private void OnMouseMove(MouseMoveEventArgs ev)
        {
            if (_window.IsMouseButtonDown(MouseButton.Right))
            {
                _graph.IsCameraAutoControlled = false;
                var delta = ev.Delta;
                delta.Y = -delta.Y;
                _graph.Camera.Target.Position += (delta / _window.ClientSize.Y) * _graph.Camera.Target.VerticalSize;
            }

            if (_window.IsMouseButtonDown(MouseButton.Left))
            {
                var p = ClientToView(ev.Position);
                var r = new Box2(p, p);
                r.Inflate(_mouseDownStartPt);
                _graph.DragRectangle = r;
            }

            _graph.ViewportWidth  = _window.ClientSize.X;
            _graph.ViewportHeight = _window.ClientSize.Y;
            _graph.MousePosition  = ClientToView(ev.Position);

            if (_graph.TryGetMouseover(ClientToView(ev.Position), out var targetPt))
            {
                _graph.MouseoverTarget = targetPt;
            }
            else
            {
                _graph.MouseoverTarget = default;
            }
        }
Example #2
0
        protected override void OnMouseMove(MouseEventArgs mm)
        {
            base.OnMouseMove(mm);
            var renSize     = _control.RenderSize;
            var size        = new Vector2((float)renSize.Width, (float)renSize.Height);
            var clientPosPt = mm.GetPosition(_control);
            var screenPt    = ClientToView(clientPosPt);

            Graph.State.MousePosition = screenPt;

            var clientPos = new Vector2((float)clientPosPt.X, (float)clientPosPt.Y);

            if (mm.LeftButton == MouseButtonState.Pressed)
            {
                var p = screenPt;
                var r = new Box2(p, p);
                r.Inflate(_mouseDownStartPt);
                Graph.State.DragRectangle = r;
            }

            if (mm.RightButton == MouseButtonState.Pressed)
            {
                Graph.State.IsCameraAutoControlled = false;
                var delta = clientPos - _lastMouse;
                delta.Y = -delta.Y;
                var moveDelta = (delta / (float)size.Y) * Graph.State.Camera.Current.VerticalSize;

                Graph.State.Camera.Target.Position += moveDelta;
            }


            if (Graph.State.TryGetMouseover(screenPt, out var targetPt))
            {
                Graph.State.MouseoverTarget = targetPt;
            }
            else
            {
                Graph.State.MouseoverTarget = null;
            }

            _lastMouse = clientPos;
        }