~repos /gdx-studio
git clone https://pyrossh.dev/repos/gdx-studio.git
An IDE for creating Games using libgdx and Java supported on all platforms Android, iOS, Desktop
src_libs/com/github/axet/lookup/common/SArray.java
package com.github.axet.lookup.common;
import java.awt.image.BufferedImage;
import com.github.axet.lookup.Capture;
/** * Double array wrapper class. Holds a double[] array and provides basic * methods. * * @author axet * */public class SArray { public SArray base;
public int cx; public int cy;
public double s[];
public SArray() { }
public SArray(int cx, int cy) { if (cx <= 0 || cy <= 0) throw new RuntimeException("wrong dimenssinons");
this.cx = cx; this.cy = cy; this.s = new double[cx * cy]; }
public void initBase(SArray buf) { base = buf;
cx = buf.cx; cy = buf.cy;
s = new double[cx * cy]; }
public double s(int x, int y) { if (x < 0) return 0; if (y < 0) return 0; return s[y * cx + x]; }
public void s(int x, int y, double v) { if (x < 0) throw new RuntimeException("bad dim"); if (y < 0) throw new RuntimeException("bad dim"); s[y * cx + x] = v; }
/** * Math Sigma (sum of the blocks) * * @param x1 * @param y1 * @param x2 * @param y2 * @return */ public double sigma(int x1, int y1, int x2, int y2) { double a = s(x1 - 1, y1 - 1); double b = s(x2, y1 - 1); double c = s(x1 - 1, y2); double d = s(x2, y2); return a + d - b - c; }
public double sigma() { return sigma(0, 0, cx - 1, cy - 1); }
public double mean(int x1, int y1, int x2, int y2) { double size = (x2 - x1 + 1) * (y2 - y1 + 1); return sigma(x1, y1, x2, y2) / size; }
public double mean() { return mean(0, 0, cx - 1, cy - 1); }
public void printDebug() { for (int y = 0; y < cy; y++) { for (int x = 0; x < cx; x++) { System.out.print(s(x, y)); System.out.print("\t"); } System.out.println(""); } }
public BufferedImage getImage() { int[] ss = new int[s.length]; for (int i = 0; i < ss.length; i++) { int g = (int) s[i];
int argb = 0xff000000 | (g << 16) | (g << 8) | (g);
ss[i] = argb; }
BufferedImage image = new BufferedImage(cx, cy, BufferedImage.TYPE_INT_ARGB); image.getWritableTile(0, 0).setDataElements(0, 0, image.getWidth(), image.getHeight(), ss); return image; }
public void writeDesktop() { Capture.writeDesktop(getImage()); }
}