private static double area_of_influence_region(NCGrid_Distribution A, int i, int j) { int imax = A.Xcount - 1; int jmax = A.Ycount - 1; double[] x = new double[4]; double[] y = new double[4]; NCAMRNode[] grid = { A.GetFake(i - 1, j + 1), A.GetFake(i, j + 1), A.GetFake(i + 1, j + 1), A.GetFake(i - 1, j), A.GetFake(i, j), A.GetFake(i + 1, j), A.GetFake(i - 1, j - 1), A.GetFake(i, j - 1), A.GetFake(i + 1, j - 1) }; NCAMRNode[] poly = { xyavg(grid[3], grid[4], grid[6], grid[7]), xyavg(grid[4], grid[5], grid[7], grid[8]), xyavg(grid[1], grid[2], grid[4], grid[5]), xyavg(grid[0], grid[1], grid[3], grid[4]) }; for (int z = 0; z < poly.Length; z++) { x[z] = poly[z].X; y[z] = poly[z].Y; } return(quad_area(x, y)); }