/// <summary>
 /// Sets the values for each location of the current grid view to be equal to the value returned from the given
 /// function when given that position.
 /// </summary>
 /// <typeparam name="T" />
 /// <param name="self" />
 /// <param name="valueFunc">
 /// Function returning data for each location in the grid view.
 /// </param>
 public static void ApplyOverlay <T>(this ISettableGridView <T> self, Func <Point, T> valueFunc)
 => self.ApplyOverlay(new LambdaGridView <T>(self.Width, self.Height, valueFunc));
 /// <summary>
 /// Sets each location in the grid view to the value specified.
 /// </summary>
 /// <typeparam name="T" />
 /// <param name="self" />
 /// <param name="value">Value to fill the grid view with.</param>
 public static void Fill <T>(this ISettableGridView <T> self, T value)
 => self.ApplyOverlay(_ => value);