Esempio n. 1
0
        public void Drag(ViewportMouseDragEventArgs e)
        {
            if (!active.Enabled)
            {
                return;
            }

            float diffX = -(e.CurrentPosition.X - e.PreviousPosition.X);
            float diffY = (e.CurrentPosition.Y - e.PreviousPosition.Y);

            float modifiedDiffX = diffX * 0.01f * active.Camera.Zoom;
            float modifiedDiffY = diffY * 0.01f * active.Camera.Zoom;

            switch (mode)
            {
            case MouseMode.Select:
                break;

            case MouseMode.Pan:
                active.Camera.Translate(modifiedDiffX, modifiedDiffY);
                break;

            case MouseMode.Zoom:
                float zoom = ((diffX * 2) - diffY) * active.Camera.ZoomSpeed;

                active.Camera.Zoom += zoom;
                break;

            case MouseMode.Rotate:
                if (active.ProjectionMode == ProjectionType.Perspective)
                {
                    active.Camera.Rotate(diffX, diffY);
                }
                break;
            }
        }
Esempio n. 2
0
        public void Drag(ViewportMouseDragEventArgs e)
        {
            if (!active.Enabled) { return; }

            float diffX = -(e.CurrentPosition.X - e.PreviousPosition.X);
            float diffY = (e.CurrentPosition.Y - e.PreviousPosition.Y);

            float modifiedDiffX = diffX * 0.01f * active.Camera.Zoom;
            float modifiedDiffY = diffY * 0.01f * active.Camera.Zoom;

            switch (mode)
            {
                case MouseMode.Select:
                    break;

                case MouseMode.Pan:
                    active.Camera.Translate(modifiedDiffX, modifiedDiffY);
                    break;

                case MouseMode.Zoom:
                    float zoom = ((diffX * 2) - diffY) * active.Camera.ZoomSpeed;

                    active.Camera.Zoom += zoom;
                    break;

                case MouseMode.Rotate:
                    if (active.ProjectionMode == ProjectionType.Perspective)
                    {
                        active.Camera.Rotate(diffX, diffY);
                    }
                    break;
            }
        }