mirror of
http://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8.git
synced 2025-04-30 02:01:59 -05:00
75 lines
1.7 KiB
Java
75 lines
1.7 KiB
Java
package net.optifine.util;
|
|
|
|
import net.minecraft.util.MathHelper;
|
|
|
|
public class MathUtils {
|
|
public static final float PI = (float) Math.PI;
|
|
public static final float PI2 = ((float) Math.PI * 2F);
|
|
public static final float PId2 = ((float) Math.PI / 2F);
|
|
// private static final float[] ASIN_TABLE = new float[65536];
|
|
//
|
|
// public static float asin(float value) {
|
|
// return ASIN_TABLE[(int) ((double) (value + 1.0F) * 32767.5D) & 65535];
|
|
// }
|
|
//
|
|
// public static float acos(float value) {
|
|
// return ((float) Math.PI / 2F) - ASIN_TABLE[(int) ((double) (value + 1.0F) * 32767.5D) & 65535];
|
|
// }
|
|
|
|
public static int getAverage(int[] vals) {
|
|
if (vals.length <= 0) {
|
|
return 0;
|
|
} else {
|
|
int i = getSum(vals);
|
|
int j = i / vals.length;
|
|
return j;
|
|
}
|
|
}
|
|
|
|
public static int getSum(int[] vals) {
|
|
if (vals.length <= 0) {
|
|
return 0;
|
|
} else {
|
|
int i = 0;
|
|
|
|
for (int j = 0; j < vals.length; ++j) {
|
|
int k = vals[j];
|
|
i += k;
|
|
}
|
|
|
|
return i;
|
|
}
|
|
}
|
|
|
|
public static int roundDownToPowerOfTwo(int val) {
|
|
int i = MathHelper.roundUpToPowerOfTwo(val);
|
|
return val == i ? i : i / 2;
|
|
}
|
|
|
|
public static boolean equalsDelta(float f1, float f2, float delta) {
|
|
return Math.abs(f1 - f2) <= delta;
|
|
}
|
|
|
|
public static float toDeg(float angle) {
|
|
return angle * 180.0F / PI;
|
|
}
|
|
|
|
public static float toRad(float angle) {
|
|
return angle / 180.0F * PI;
|
|
}
|
|
|
|
public static float roundToFloat(double d) {
|
|
return (float) ((double) Math.round(d * 1.0E8D) / 1.0E8D);
|
|
}
|
|
|
|
// static {
|
|
// for (int i = 0; i < 65536; ++i) {
|
|
// ASIN_TABLE[i] = (float) Math.asin((double) i / 32767.5D - 1.0D);
|
|
// }
|
|
//
|
|
// for (int j = -1; j < 2; ++j) {
|
|
// ASIN_TABLE[(int) (((double) j + 1.0D) * 32767.5D) & 65535] = (float) Math.asin((double) j);
|
|
// }
|
|
// }
|
|
}
|