/// <summary>
        /// Update camera for mouse input.
        /// </summary>
        private static void UpdateForMouse(Camera3DBase actCamera, bool isControlKeyDown, MouseOrPointerState mouseState)
        {
            // Handle mouse move
            if (mouseState.MoveDistanceDip != Vector2.Zero)
            {
                var moving = mouseState.MoveDistanceDip;

                if (mouseState.IsButtonDown(MouseButton.Left) &&
                    mouseState.IsButtonDown(MouseButton.Right))
                {
                    actCamera.Zoom(moving.Y / -50f);
                }
                else if (mouseState.IsButtonDown(MouseButton.Left))
                {
                    actCamera.Strave(moving.X / 50f);
                    actCamera.UpDown(-moving.Y / 50f);
                }
                else if (mouseState.IsButtonDown(MouseButton.Right))
                {
                    actCamera.Rotate(-moving.X / 200f, -moving.Y / 200f);
                }
            }

            // Handle mouse wheel
            if (mouseState.WheelDelta != 0)
            {
                var multiplier = 1f;
                if (isControlKeyDown)
                {
                    multiplier = 2f;
                }
                actCamera.Zoom(mouseState.WheelDelta / 100f * multiplier);
            }
        }
        /// <summary>
        /// Update camera for mouse input.
        /// </summary>
        private static void UpdateForMouse(
            PerSceneContext componentContext, Camera3DBase actCamera,
            MouseOrPointerState mouseState)
        {
            // Handle mouse move
            if (mouseState.MoveDistanceDip != Vector2.Zero)
            {
                Vector2 moving = mouseState.MoveDistanceDip;
                if (mouseState.IsButtonDown(MouseButton.Left) &&
                    mouseState.IsButtonDown(MouseButton.Right))
                {
                    float multiplyer = 1.05f;
                    if (moving.Y < 0f)
                    {
                        multiplyer = 0.95f;
                    }
                    componentContext.CameraDistance = componentContext.CameraDistance * multiplyer;
                }
                else if (mouseState.IsButtonDown(MouseButton.Left) ||
                         mouseState.IsButtonDown(MouseButton.Right))
                {
                    componentContext.CameraHVRotation = componentContext.CameraHVRotation +
                                                        new Vector2(
                        SINGLE_ROTATION_H * (moving.X / 4f),
                        SINGLE_ROTATION_V * (moving.Y / 4f));
                }
            }

            // Handle mouse wheel
            if (mouseState.WheelDelta != 0)
            {
                float multiplyer = 0.95f - (Math.Abs(mouseState.WheelDelta) / 1000f);
                if (mouseState.WheelDelta < 0)
                {
                    multiplyer = 1.05f + (Math.Abs(mouseState.WheelDelta) / 1000f);
                }

                componentContext.CameraDistance = componentContext.CameraDistance * multiplyer;
            }
        }