Example #1
0
        private void UIElement_OnMouseMove(object sender, MouseEventArgs e)
        {
            // test rmb pressing
            if (e.RightButton == MouseButtonState.Pressed)
            {
                // test shift holding
                if (shiftPressed)
                {
                    var position = e.GetPosition(this);
                    var deltaX   = currentPositionX - position.X;
                    var deltaY   = currentPositionY - position.Y;

                    Extensions.PanDirection panDirection = Extensions.PanDirection.None;
                    if (Math.Abs(deltaX) > Math.Abs(deltaY))
                    {
                        if (deltaX > 0)
                        {
                            panDirection = Extensions.PanDirection.Right;
                        }
                        if (deltaX < 0)
                        {
                            panDirection = Extensions.PanDirection.Left;
                        }
                    }
                    else
                    {
                        if (deltaY > 0)
                        {
                            panDirection = Extensions.PanDirection.Up;
                        }
                        if (deltaY < 0)
                        {
                            panDirection = Extensions.PanDirection.Down;
                        }
                    }

                    _camera.Pan(panDirection);
                }

                else
                {
                    var position = e.GetPosition(this);
                    var deltaX   = currentPositionX - position.X;
                    var deltaY   = currentPositionY - position.Y;

                    Extensions.PanDirection panDirection = Extensions.PanDirection.None;
                    if (Math.Abs(deltaX) > Math.Abs(deltaY))
                    {
                        if (deltaX > 0)
                        {
                            panDirection = Extensions.PanDirection.Right;
                        }
                        if (deltaX < 0)
                        {
                            panDirection = Extensions.PanDirection.Left;
                        }
                    }
                    else
                    {
                        if (deltaY > 0)
                        {
                            panDirection = Extensions.PanDirection.Up;
                        }
                        if (deltaY < 0)
                        {
                            panDirection = Extensions.PanDirection.Down;
                        }
                    }

                    //currentPositionX = e.GetPosition(this).X;

                    _camera.Rotate(panDirection, _properties.SceneBbox);
                }
            }


            else
            {
                var position = e.GetPosition(this);
                currentPositionX = position.X;
                currentPositionY = position.Y;
            }
        }