Ejemplo n.º 1
0
 private void HandleRightMouseButtonInput(GameTime gameTime, MouseState mouseState)
 {
     if (mouseState.RightButton == ButtonState.Pressed)
     {
         if ((mouseActivityState & MouseActivityState.MousePan) != MouseActivityState.MousePan)  //Mouse down event
         {
             mouseActivityState |= MouseActivityState.MousePan;
             mousePanStart       = GetNormalizedMouseCoordinates(mouseState);
         }
         else //Mouse move while middle down
         {
             mousePanEnd = GetNormalizedMouseCoordinates(mouseState);
             var panAmount = (mousePanStart - mousePanEnd) * this.PanSpeed;
             if (panAmount.LengthSquared() > 0)
             {
                 this.MoveTo(panAmount);
                 mousePanStart = mousePanEnd;
             }
         }
     }
     else
     {
         mouseActivityState &= ~MouseActivityState.MousePan;
     }
 }
Ejemplo n.º 2
0
 private void HandleLeftMouseButtonInput(GameTime gameTime, MouseState mouseState)
 {
     if (mouseState.LeftButton == ButtonState.Pressed)
     {
         if ((mouseActivityState & MouseActivityState.MouseRotate) != MouseActivityState.MouseRotate)  //Mouse down event
         {
             mouseActivityState |= MouseActivityState.MouseRotate;
             var mouseVector = GetMouseArcBallVector(mouseState);
             mouseRotationStart = object3D.GetMouseProjectionOnArcBall(mouseVector, ArcBallOrigin);
         }
         else //Mouse move while left down
         {
             var mouseVector = GetMouseArcBallVector(mouseState);
             mouseRotationEnd = object3D.GetMouseProjectionOnArcBall(mouseVector, ArcBallOrigin);
             var rotatedMouseRotationEnd = object3D.Rotate(mouseRotationStart, mouseRotationEnd, this.ArcBallOrigin, this.RotateSpeed);
             if (rotatedMouseRotationEnd != null)
             {
                 mouseRotationEnd   = rotatedMouseRotationEnd.Value;
                 mouseRotationStart = mouseRotationEnd;
             }
         }
     }
     else
     {
         mouseActivityState &= ~MouseActivityState.MouseRotate;
     }
 }
Ejemplo n.º 3
0
 private void HandleMiddleMouseButtonInput(GameTime gameTime, MouseState mouseState)
 {
     if (mouseState.MiddleButton == ButtonState.Pressed)
     {
         if ((mouseActivityState & MouseActivityState.MouseZoom) != MouseActivityState.MouseZoom)  //Mouse down event
         {
             mouseActivityState |= MouseActivityState.MouseZoom;
             mouseZoomStart      = mouseState.Y;
         }
         else //Mouse move while middle down
         {
             mouseZoomEnd = mouseState.Y;
             var zoomFactor = (float)Math.Pow(MaxZoom, (mouseZoomEnd - mouseZoomStart) / screenHeight) * this.ZoomSpeed;
             if (Math.Abs(zoomFactor - 0) > 1E-3)
             {
                 object3D.Zoom(zoomFactor, ArcBallOrigin);
                 mouseZoomStart = mouseZoomEnd;
             }
         }
     }
     else
     {
         mouseActivityState &= ~MouseActivityState.MouseZoom;
     }
 }
Ejemplo n.º 4
0
 private void HandleRightMouseButtonInput(GameTime gameTime, MouseState mouseState)
 {
     if (mouseState.RightButton == ButtonState.Pressed)
     {
         if ((mouseActivityState & MouseActivityState.MousePan) != MouseActivityState.MousePan)  //Mouse down event
         {
             mouseActivityState |= MouseActivityState.MousePan;
             mousePanStart = GetNormalizedMouseCoordinates(mouseState);
         }
         else //Mouse move while middle down
         {
             mousePanEnd = GetNormalizedMouseCoordinates(mouseState);
             var panAmount = (mousePanStart - mousePanEnd) * this.PanSpeed;
             if (panAmount.LengthSquared() > 0)
             {
                 this.MoveTo(panAmount);
                 mousePanStart = mousePanEnd;
             }
         }
     }
     else
         mouseActivityState &= ~MouseActivityState.MousePan;
 }
Ejemplo n.º 5
0
 private void HandleMiddleMouseButtonInput(GameTime gameTime, MouseState mouseState)
 {
     if (mouseState.MiddleButton == ButtonState.Pressed)
     {
         if ((mouseActivityState & MouseActivityState.MouseZoom) != MouseActivityState.MouseZoom)  //Mouse down event
         {
             mouseActivityState |= MouseActivityState.MouseZoom;
             mouseZoomStart = mouseState.Y;
         }
         else //Mouse move while middle down
         {
             mouseZoomEnd = mouseState.Y;
             var zoomFactor = (float) Math.Pow(MaxZoom, (mouseZoomEnd - mouseZoomStart) / screenHeight) * this.ZoomSpeed;
             if (Math.Abs(zoomFactor - 0) > 1E-3)
             {
                 object3D.Zoom(zoomFactor, ArcBallOrigin);
                 mouseZoomStart = mouseZoomEnd;
             }
         }
     }
     else
         mouseActivityState &= ~MouseActivityState.MouseZoom;
 }
Ejemplo n.º 6
0
 private void HandleLeftMouseButtonInput(GameTime gameTime, MouseState mouseState)
 {
     if (mouseState.LeftButton == ButtonState.Pressed)
     {
         if ((mouseActivityState & MouseActivityState.MouseRotate) != MouseActivityState.MouseRotate)  //Mouse down event
         {
             mouseActivityState |= MouseActivityState.MouseRotate;
             var mouseVector = GetMouseArcBallVector(mouseState);
             mouseRotationStart = object3D.GetMouseProjectionOnArcBall(mouseVector, ArcBallOrigin);
         }
         else //Mouse move while left down
         {
             var mouseVector = GetMouseArcBallVector(mouseState);
             mouseRotationEnd = object3D.GetMouseProjectionOnArcBall(mouseVector, ArcBallOrigin);
             var rotatedMouseRotationEnd = object3D.Rotate(mouseRotationStart, mouseRotationEnd, this.ArcBallOrigin, this.RotateSpeed);
             if (rotatedMouseRotationEnd != null)
             {
                 mouseRotationEnd = rotatedMouseRotationEnd.Value;
                 mouseRotationStart = mouseRotationEnd;
             }
         }
     }
     else
         mouseActivityState &= ~MouseActivityState.MouseRotate;
 }