public static Vector2 Reduce3x3(Vector2 curr_cell, Reduce3x3Callback <Vector2> callback) { return(UMatrix.Reduce3x3 <Vector2>( curr_cell, (prev, curr) => curr_cell == curr ? prev : callback(prev, curr), curr_cell )); }
public static T Reduce3x3 <T>(Vector2 curr_cell, Reduce3x3Callback <T> callback, T initial) { T result = initial; UMatrix.ForEach3x3(curr_cell, curr_neighbour => { result = callback(result, curr_neighbour); }); return(result); }