Пример #1
0
        //Mouse down
        public void OnMouseDown(Vector2 mousePosition, Matrix4X4 screenToLocal, TrackBallTransformType trackType = TrackBallTransformType.Rotation)
        {
            //if (currentTrackingType == MouseDownType.None)
            {
                CurrentTrackingType = trackType;
                switch (CurrentTrackingType)
                {
                case TrackBallTransformType.Rotation:
                    mouseDownPosition = mousePosition;
                    break;

                case TrackBallTransformType.Translation:
                    localToScreenTransform       = Matrix4X4.Invert(screenToLocal);
                    lastTranslationMousePosition = mousePosition;
                    break;

                case TrackBallTransformType.Scale:
                    lastScaleMousePosition = mousePosition;
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }
Пример #2
0
        private static void Offset3DView(View3DWidget view3D, Vector2 offset, TrackBallTransformType operation)
        {
            var center = view3D.TrackballTumbleWidget.LocalBounds.Center;

            view3D.TrackballTumbleWidget.TrackBallController.OnMouseDown(center, Matrix4X4.Identity, operation);
            view3D.TrackballTumbleWidget.TrackBallController.OnMouseMove(center + offset);
            view3D.TrackballTumbleWidget.TrackBallController.OnMouseUp();
            view3D.TrackballTumbleWidget.Invalidate();
        }
Пример #3
0
        private static void Offset3DView(View3DWidget view3D, Vector2 offset, TrackBallTransformType operation)
        {
            var center = view3D.TrackballTumbleWidget.LocalBounds.Center;

            var oldState = view3D.TrackballTumbleWidget.TransformState;

            view3D.TrackballTumbleWidget.TransformState = operation;
            var mouseEvent = new MouseEventArgs(MouseButtons.Left, 1, center.X, center.Y, 0);

            view3D.TrackballTumbleWidget.OnMouseDown(mouseEvent);
            mouseEvent = new MouseEventArgs(mouseEvent, center.X + offset.X, center.Y + offset.Y);
            view3D.TrackballTumbleWidget.OnMouseMove(mouseEvent);
            view3D.TrackballTumbleWidget.OnMouseUp(mouseEvent);
            view3D.TrackballTumbleWidget.TransformState = oldState;
            view3D.TrackballTumbleWidget.Invalidate();
        }
Пример #4
0
        public void OnMouseUp()
        {
            switch (CurrentTrackingType)
            {
            case TrackBallTransformType.Rotation:
                break;

            case TrackBallTransformType.Translation:
                //currentTranslationMatrix = Matrix4X4.Identity;
                break;

            case TrackBallTransformType.Scale:
                break;

            default:
                throw new NotImplementedException();
            }
            CurrentTrackingType = TrackBallTransformType.None;
        }