static public bool Camera(KeyboardState kbd, Camera camera, int msticks)
        {
            Vector3 cameraActionRotation = Vector3.Zero;

            var angle = (float)msticks * 0.075f;

            if (kbd.HasBeenPressed(Keys.NumPad4))
            {
                cameraActionRotation.Z = -angle;
            }
            if (kbd.HasBeenPressed(Keys.NumPad6))
            {
                cameraActionRotation.Z = angle;
            }
            if (kbd.IsCurrentlyPressed(Keys.NumPad5, Keys.NumPad2) != null)
            {
                cameraActionRotation.X = -angle;
            }
            if (kbd.HasBeenPressed(Keys.NumPad8))
            {
                cameraActionRotation.X = angle;
            }
            if (kbd.IsCurrentlyPressed(Keys.NumPad7, Keys.Q) != null)
            {
                cameraActionRotation.Y = -angle;
            }
            if (kbd.IsCurrentlyPressed(Keys.NumPad9, Keys.E) != null)
            {
                cameraActionRotation.Y = angle;
            }

            if (cameraActionRotation.LengthSquared > 0)
            {
                camera.Rotate(cameraActionRotation);
                return(true);
            }
            else
            {
                return(false);
            }
        }
        static public bool Zoom(KeyboardState kbd, Zoom zoom, int msticks)
        {
            float adjustment = 1.0f + ((float)msticks * 0.002f);

            bool changed = false;

            if (kbd.IsCurrentlyPressed(Keys.Add, Keys.Z) != null)
            {
                zoom.Multiply(adjustment);
                changed = true;
            }

            if (kbd.IsCurrentlyPressed(Keys.Subtract, Keys.X) != null)
            {
                zoom.Multiply(1.0f / adjustment);
                changed = true;
            }

            float newzoom = 0;

            if (kbd.HasBeenPressed(Keys.D1))
            {
                newzoom = zoom.ZoomMax;
            }
            if (kbd.HasBeenPressed(Keys.D2))
            {
                newzoom = 100;                                                      // Factor 3 scale
            }
            if (kbd.HasBeenPressed(Keys.D3))
            {
                newzoom = 33;
            }
            if (kbd.HasBeenPressed(Keys.D4))
            {
                newzoom = 11F;
            }
            if (kbd.HasBeenPressed(Keys.D5))
            {
                newzoom = 3.7F;
            }
            if (kbd.HasBeenPressed(Keys.D6))
            {
                newzoom = 1.23F;
            }
            if (kbd.HasBeenPressed(Keys.D7))
            {
                newzoom = 0.4F;
            }
            if (kbd.HasBeenPressed(Keys.D8))
            {
                newzoom = 0.133F;
            }
            if (kbd.HasBeenPressed(Keys.D9))
            {
                newzoom = zoom.ZoomMin;
            }

            if (newzoom != 0)
            {
                System.Diagnostics.Debug.WriteLine("Zoom to " + newzoom);
                zoom.GoTo(newzoom, -1);
                changed = true;
            }

            return(changed);
        }