public static int GetAverageSize <TNode, TConfiguration, TConfigurationSpace>(this IConfigurationSpaces <TNode, IntAlias <GridPolygon>, TConfiguration, TConfigurationSpace> configurationSpaces) { return((int)configurationSpaces.GetAllShapes().Select(x => x.Value.BoundingRectangle).Average(x => (x.Width + x.Height) / 2)); }