private void focusOnSite(Vector2d loc)
        {
            Debug.Log("Focusing on site");
            PlanetariumCamera camera = PlanetariumCamera.fetch;
            CelestialBody     Kerbin = getKSCBody();
            Vector3d          point  = ScaledSpace.LocalToScaledSpace(Kerbin.GetWorldSurfacePosition(loc.x, loc.y, 0));
            Vector3           vec    = ScaledSpace.LocalToScaledSpace(Kerbin.transform.localPosition);

            point = (point - vec).normalized * Kerbin.Radius;
            camera.SetCamCoordsFromPosition(new Vector3((float)point.x, (float)point.y, (float)point.z));

            // this works for RSS, may have to change for other sizes.
            // float distance = camera.startDistance * 3.5f;
            float distance = (float)(Kerbin.Radius * 0.00035);

            camera.SetDistance(distance);
        }
        public void UpdateCameraProperties(float camPitch, float camYaw, float camZoom, float camSensitivity)
        {
            switch (CameraManager.Instance.currentCameraMode)
            {
            case CameraManager.CameraMode.Flight:
            {
                FlightCamera.CamHdg   += camYaw * camSensitivity;
                FlightCamera.CamPitch += -camPitch * camSensitivity;
                FlightCamera.fetch.SetDistance(FlightCamera.fetch.Distance + camZoom * flightZoomStep);
                break;
            }

            case CameraManager.CameraMode.Map:
            {
                PlanetariumCamera cam = PlanetariumCamera.fetch;
                cam.camHdg   += camYaw * camSensitivity;
                cam.camPitch += -camPitch * camSensitivity;
                cam.SetDistance(Utility.Clamp(cam.Distance + (cam.Distance * camZoom * mapZoomStep), cam.minDistance, cam.maxDistance));
                break;
            }

            case CameraManager.CameraMode.IVA:
            case CameraManager.CameraMode.Internal:
            {
                //Hack: access private field that holds pitch/yaw in degrees before being applied to the camera.
                if (this.ivaCamFieldsLoaded)
                {
                    InternalCamera cam = InternalCamera.Instance;
                    ivaPitchField.SetValue(cam, (float)ivaPitchField.GetValue(cam) + camPitch * camSensitivity * ivaPanStep);
                    ivaYawField.SetValue(cam, (float)ivaYawField.GetValue(cam) + camYaw * camSensitivity * ivaPanStep);
                }
                if (camZoom != 0)
                {
                    // InternalCamera.Instance.SetFOV(Utility.Clamp(InternalCamera.Instance.camera.fieldOfView + camZoom * ivaFovStep, ivaFovMin, ivaFovMax));
                }
                break;
            }

            default:
                Debug.LogWarning("AFBW - Unsupported CameraMode: " + CameraManager.Instance.currentCameraMode.ToString());
                break;
            }
        }