public static IGraphRoute<TestCell> GetRoute(IFlatOrthogonalGraph<TestCell> graph, Func<TestCell, TestCell, double> estimator, TestCell source, TestCell target) { return graph.CalculateRoute(source, target, (a, b) => estimator(a, b), (a, b) => 1, (a) => a.Blocked ); }
private static void Reset(IFlatOrthogonalGraph<TestCell> graph) { foreach (var item in graph) item.Blocked = false; }
private static void BlockColumn(IFlatOrthogonalGraph<TestCell> graph, int column, int startBlock, int finishBlock) { for (int i = startBlock; i < finishBlock; i++) graph[column, i].Blocked = true; }
private static void BlockRow(IFlatOrthogonalGraph<TestCell> graph, int row, int startBlock, int finishBlock) { for (int i = startBlock; i < finishBlock; i++) graph[i, row].Blocked = true; }
public static IGraphRoute<TestCell> CalcRoute(IFlatOrthogonalGraph<TestCell> graph, Func<TestCell, TestCell, double> estimator) { return graph.CalculateRoute(graph[0, 0], graph[_scale * 8, 0], estimator, (a, b) => 1, (a) => a.Blocked); }