void SetState(SurfaceCameraState state)
{
CameraPosition = FreeSurfacePosition = state.FreeSurfacePosition;
CameraDistance = CameraPosition.Length();
FreeSurfaceYaw = state.FreeSurfaceYaw;
FreeSurfacePitch = state.FreeSurfacePitch;
freeSurfaceRotation = state.FreeRotation;
var newLonLat = GetCameraLonLat();
Yaw = newLonLat.X;
Pitch = -newLonLat.Y;
}