public static ImmutableTransform LookAt(this ImmutableTransform t, Vector3 lookTarget, Vector3 up)
        {
            var relativePosition = lookTarget - t.Position;

            return(t.UpdateRotation(Quaternion.LookRotation(relativePosition, up)));
        }
 public static ImmutableTransform RotateWorld(this ImmutableTransform t, Quaternion rotation)
 {
     return(t.UpdateRotation(rotation * t.Rotation));
 }