protected internal virtual void buildGrid(int numX, int numY, int power) { int length = numX * numY; double[] data1 = new double[length]; double[] data2 = new double[length]; double[] data3 = new double[length]; double lower1 = 1E+20; for (int index = 0; index < this.xValues.Length; ++index) lower1 = Math.min(lower1, this.xValues[index].doubleValue()); double upper1 = -1E+20; for (int index = 0; index < this.xValues.Length; ++index) upper1 = Math.max(upper1, this.xValues[index].doubleValue()); double lower2 = 1E+20; for (int index = 0; index < this.yValues.Length; ++index) lower2 = Math.min(lower2, this.yValues[index].doubleValue()); double upper2 = -1E+20; for (int index = 0; index < this.yValues.Length; ++index) upper2 = Math.max(upper2, this.yValues[index].doubleValue()); Range range1 = new Range(lower1, upper1); Range range2 = new Range(lower2, upper2); range1.getLength(); range2.getLength(); double num1 = range1.getLength() / (double) (numX - 1); double num2 = range2.getLength() / (double) (numY - 1); double num3 = 0.0; for (int index1 = 0; index1 < numX; ++index1) { if (index1 == 0) num3 = lower1; else num3 += num1; double num4 = 0.0; for (int index2 = 0; index2 < numY; ++index2) { int index3 = numY * index1 + index2; data1[index3] = num3; if (index2 == 0) num4 = lower2; else num4 += num2; data2[index3] = num4; } } for (int index1 = 0; index1 < data1.Length; ++index1) { double num4 = 0.0; data3[index1] = 0.0; for (int index2 = 0; index2 < this.xValues.Length; ++index2) { double num5 = this.distance(this.xValues[index2].doubleValue(), this.yValues[index2].doubleValue(), data1[index1], data2[index1]); if (power != 1) num5 = Math.pow(num5, (double) power); double num6 = Math.sqrt(num5); double num7 = num6 <= 0.0 ? 1E+20 : 1.0 / num6; if (this.zValues[index2] != null) { double[] numArray1 = data3; int index3 = index1; double[] numArray2 = numArray1; numArray2[index3] = numArray2[index3] + this.zValues[index2].doubleValue() * num7; } num4 += num7; } data3[index1] = data3[index1] / num4; } this.initialize(DefaultContourDataset.formObjectArray(data1), DefaultContourDataset.formObjectArray(data2), DefaultContourDataset.formObjectArray(data3)); }