MathUtil class
Пакет: com.hypixel.hytale.math.util
Файл: com/hypixel/hytale/math/util/MathUtil.java
Поля (86)
| Модификаторы | Тип | Имя |
|---|---|---|
|
return var0 < |
0L |
final |
double |
EPSILON_DOUBLE |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
|
var0 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
int |
var1 |
|
double |
var11 |
|
double |
var12 |
|
double |
var12 |
|
|
var12 |
|
double |
var14 |
|
double |
var14 |
|
|
var14 |
|
double |
var16 |
|
|
var16 |
|
double |
var16 |
|
double |
var16 |
|
double |
var18 |
|
|
var18 |
|
double |
var18 |
|
double |
var18 |
|
int |
var2 |
|
int |
var2 |
|
long |
var2 |
|
long |
var2 |
|
int |
var2 |
|
|
var2 |
|
|
var2 |
|
int |
var2 |
|
float |
var2 |
|
double |
var20 |
|
double |
var20 |
|
double |
var22 |
|
|
var22 |
|
|
var22 |
|
double |
var24 |
|
|
var24 |
|
|
var24 |
|
double |
var3 |
|
int |
var3 |
|
|
var3 |
|
float |
var3 |
|
float |
var3 |
|
double |
var3 |
|
int |
var4 |
|
|
var4 |
|
|
var4 |
|
double |
var4 |
|
|
var4 |
|
|
var4 |
|
int |
var4 |
|
double |
var4 |
|
int |
var5 |
|
|
var5 |
|
|
var5 |
|
float |
var5 |
|
double |
var5 |
|
float |
var5 |
|
double |
var6 |
|
|
var6 |
|
|
var6 |
|
long |
var7 |
|
|
var7 |
|
|
var7 |
|
long |
var9 |
|
|
var9 |
|
|
var9 |
Методы (118)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
Rotation3freturn new Rotation3f(Rotation3f.IDENTITY) |
abstract |
return new |
Vector3dreturn new Vector3d(var4, var0.y, var6) |
abstract |
return new |
Vector3ireturn new Vector3i(var4, var0.y, var5) |
static |
int |
absint abs(int var0) |
static |
int |
byteCountint byteCount(int var0) |
static |
int |
ceilint ceil(double var0) |
static |
double |
clampdouble clamp(double var0, double var2, double var4) |
static |
float |
clampfloat clamp(float var0, float var1, float var2) |
static |
int |
clampint clamp(int var0, int var1, int var2) |
static |
long |
clamplong clamp(long var0, long var2, long var4) |
static |
double |
clipToZerodouble clipToZero(double var0) |
static |
double |
clipToZerodouble clipToZero(double var0, double var2) |
static |
float |
clipToZerofloat clipToZero(float var0) |
static |
float |
clipToZerofloat clipToZero(float var0, float var1) |
abstract |
return |
clipToZeroreturn clipToZero(var0, EPSILON_DOUBLE) |
abstract |
return |
clipToZeroreturn clipToZero(var0, EPSILON_FLOAT) |
static |
boolean |
closeToZeroboolean closeToZero(double var0) |
static |
boolean |
closeToZeroboolean closeToZero(double var0, double var2) |
static |
boolean |
closeToZeroboolean closeToZero(float var0) |
static |
boolean |
closeToZeroboolean closeToZero(float var0, float var1) |
abstract |
return |
closeToZeroreturn closeToZero(var0, EPSILON_DOUBLE) |
abstract |
return |
closeToZeroreturn closeToZero(var0, EPSILON_FLOAT) |
static |
double |
compareAngledouble compareAngle(double var0, double var2) |
static |
double |
distanceToInfLineSqdouble distanceToInfLineSq(double var0, double var2, double var4, double var6, double var8, double var10) |
static |
double |
distanceToInfLineSqdouble distanceToInfLineSq(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14) |
abstract |
return |
distanceToInfLineSqreturn distanceToInfLineSq(var0, var2, var4, var6, var12, var14, var16, var18) |
static |
double |
distanceToLineSqdouble distanceToLineSq(double var0, double var2, double var4, double var6, double var8, double var10) |
static |
double |
distanceToLineSqdouble distanceToLineSq(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16, double var18) |
abstract |
return |
distanceToLineSqreturn distanceToLineSq(var0, var2, var4, var6, var8, var10, var12, var14, var16, var18) |
static |
int |
fastCeilint fastCeil(float var0) |
static |
long |
fastCeillong fastCeil(double var0) |
static |
int |
fastFloorint fastFloor(float var0) |
static |
long |
fastFloorlong fastFloor(double var0) |
abstract |
return |
fastFloorreturn fastFloor(var0 + 0.5F) |
abstract |
return |
fastFloorreturn fastFloor(var0 + 0.5) |
static |
int |
fastRoundint fastRound(float var0) |
static |
long |
fastRoundlong fastRound(double var0) |
static |
int |
floorint floor(double var0) |
static |
double |
floorModdouble floorMod(double var0, double var2) |
static |
String |
getNameForHitNormalString getNameForHitNormal(Vector3d var0) |
static |
int |
getPercentageOfint getPercentageOf(int var0, int var1) |
static |
Rotation3f |
getRotationForHitNormalRotation3f getRotationForHitNormal(Vector3d var0) |
static |
int |
halfFloatFromFloatint halfFloatFromFloat(float var0) |
static |
float |
halfFloatToFloatfloat halfFloatToFloat(int var0) |
|
|
if if(var2 <= var0) |
|
|
if if(var2 < var0) |
|
|
if if(var4 < var0) |
|
|
if if(var1 < var0) |
|
|
if if(var2 < var0) |
|
|
if if(var2 > var0) |
|
|
if if(var4 > var0) |
|
|
if if(var6 > var0) |
|
|
if if(var2 > var0) |
|
|
if if(var4 > var0) |
|
|
if if(var1 > var0) |
|
|
if if(var2 > var0) |
|
|
if if(var1 > var0) |
|
|
if if(var2 > var0) |
|
|
if if(var3 > var0) |
|
|
if if(var1 > var0) |
|
|
if if(var2 > var0) |
|
|
if if(var0 > var4) |
|
|
if if(var0 > var2) |
|
|
if if(var0 > var2) |
|
|
if if(var0 > var4) |
|
|
if if(var1 <= var0) |
|
|
if if(var2 <= var0) |
|
|
if if(var2 == 31744) |
|
|
if if(var1 == 0 && var2 > 115712) |
|
|
if if(var3 >= 1199570944) |
|
|
if if(var3 >= 947912704) |
|
|
if if(var3 < 855638016) |
|
|
if if(var0 > 65535) |
|
|
if if(var2) |
|
|
if if(var2) |
|
|
if if(var0.length == 1) |
|
|
if if(var1 >= 1.0) |
|
|
if if(var3 >= 1.0) |
|
|
if if(var7 == var9) |
|
|
if if(var20 > 1.0) |
|
|
if if(var0 == null) |
|
|
if if(var0 == null) |
static |
double |
lengthdouble length(double var0, double var2) |
static |
double |
lengthdouble length(double var0, double var2, double var4) |
static |
double |
lengthSquareddouble lengthSquared(double var0, double var2) |
static |
double |
lengthSquareddouble lengthSquared(double var0, double var2, double var4) |
static |
float |
lerpfloat lerp(float var0, float var1, float var2) |
static |
double |
lerpdouble lerp(double var0, double var2, double var4) |
static |
float |
lerpAnglefloat lerpAngle(float var0, float var1, float var2) |
static |
float |
lerpUnclampedfloat lerpUnclamped(float var0, float var1, float var2) |
static |
double |
lerpUnclampeddouble lerpUnclamped(double var0, double var2, double var4) |
static |
float |
mapToRangefloat mapToRange(float var0, float var1, float var2, float var3, float var4) |
static |
double |
maxValuedouble maxValue(double var0, double var2, double var4, double var6) |
static |
double |
maxValuedouble maxValue(double var0, double var2, double var4) |
static |
byte |
maxValuebyte maxValue(byte var0, byte var1, byte var2) |
static |
byte |
maxValuebyte maxValue(byte var0, byte var1, byte var2, byte var3) |
static |
int |
maxValueint maxValue(int var0, int var1, int var2) |
static |
double |
maxValuedouble maxValue(double var0, double var2) |
static |
double |
minValuedouble minValue(double var0, double var2, double var4) |
static |
int |
minValueint minValue(int var0, int var1, int var2) |
static |
int |
packIntint packInt(int var0, int var1) |
static |
long |
packLonglong packLong(int var0, int var1) |
static |
double |
percentdouble percent(int var0, int var1) |
static |
double |
percentiledouble percentile(@Nonnull long[] var0, double var1) |
static |
double |
randomDoubledouble randomDouble(double var0, double var2) |
static |
float |
randomFloatfloat randomFloat(float var0, float var1) |
static |
int |
randomIntint randomInt(int var0, int var1) |
static |
double |
rounddouble round(double var0, int var2) |
static |
long |
saturatedMultiplylong saturatedMultiply(long var0, long var2) |
static |
float |
seededLerpfloat seededLerp(float var0, float var1, long var2) |
static |
float |
shortAngleDistancefloat shortAngleDistance(float var0, float var1) |
static |
int |
sideOfLineint sideOfLine(double var0, double var2, double var4, double var6, double var8, double var10) |
static |
int |
unpackLeftint unpackLeft(int var0) |
static |
int |
unpackLeftint unpackLeft(long var0) |
static |
int |
unpackRightint unpackRight(int var0) |
static |
int |
unpackRightint unpackRight(long var0) |
static |
boolean |
withinboolean within(double var0, double var2, double var4) |
static |
float |
wrapAnglefloat wrapAngle(float var0) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.math.util;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import java.util.concurrent.ThreadLocalRandom;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class MathUtil {
class="kw">public class="kw">static class="kw">final double EPSILON_DOUBLE = Math.ulp(1.0);
class="kw">public class="kw">static class="kw">final float EPSILON_FLOAT = Math.ulp(1.0F);
class="kw">public class="kw">static class="kw">final double ZERO_LENGTH_EPSILON = 1.0E-8;
class="kw">public class="kw">static float PITCH_EDGE_PADDING = 0.01F;
class="kw">public class="kw">static int abs(int var0) {
int var1 = var0 >> 31;
class="kw">return var0 + var1 ^ var1;
}
class="kw">public class="kw">static int floor(double var0) {
int var2 = (int)var0;
if (var2 <= var0) {
class="kw">return var2;
} else {
class="kw">return var0 < -2.1474836E9F ? Integer.MIN_VALUE : var2 - 1;
}
}
class="kw">public class="kw">static int ceil(double var0) {
int var2 = (int)var0;
if (!(var0 > 0.0) || var0 == var2) {
class="kw">return var2;
} else {
class="kw">return var0 > 2.147483647E9 ? Integer.MAX_VALUE : var2 + 1;
}
}
class="kw">public class="kw">static int randomInt(int var0, int var1) {
class="kw">return ThreadLocalRandom.current().nextInt(var0, var1);
}
class="kw">public class="kw">static double randomDouble(double var0, double var2) {
class="kw">return var0 + Math.random() * (var2 - var0);
}
class="kw">public class="kw">static float randomFloat(float var0, float var1) {
class="kw">return var0 + (float)Math.random() * (var1 - var0);
}
class="kw">public class="kw">static double round(double var0, int var2) {
double var3 = Math.pow(10.0, var2);
class="kw">return Math.round(var0 * var3) / var3;
}
class="kw">public class="kw">static boolean within(double var0, double var2, double var4) {
class="kw">return var0 >= var2 && var0 <= var4;
}
class="kw">public class="kw">static double minValue(double var0, double var2, double var4) {
if (var2 < var0) {
var0 = var2;
}
if (var4 < var0) {
var0 = var4;
}
class="kw">return var0;
}
class="kw">public class="kw">static int minValue(int var0, int var1, int var2) {
if (var1 < var0) {
var0 = var1;
}
if (var2 < var0) {
var0 = var2;
}
class="kw">return var0;
}
class="kw">public class="kw">static double maxValue(double var0, double var2, double var4, double var6) {
if (var2 > var0) {
var0 = var2;
}
if (var4 > var0) {
var0 = var4;
}
if (var6 > var0) {
var0 = var6;
}
class="kw">return var0;
}
class="kw">public class="kw">static double maxValue(double var0, double var2, double var4) {
if (var2 > var0) {
var0 = var2;
}
if (var4 > var0) {
var0 = var4;
}
class="kw">return var0;
}
class="kw">public class="kw">static byte maxValue(byte var0, byte var1, byte var2) {
if (var1 > var0) {
var0 = var1;
}
if (var2 > var0) {
var0 = var2;
}
class="kw">return var0;
}
class="kw">public class="kw">static byte maxValue(byte var0, byte var1, byte var2, byte var3) {
if (var1 > var0) {
var0 = var1;
}
if (var2 > var0) {
var0 = var2;
}
if (var3 > var0) {
var0 = var3;
}
class="kw">return var0;
}
class="kw">public class="kw">static int maxValue(int var0, int var1, int var2) {
if (var1 > var0) {
var0 = var1;
}
if (var2 > var0) {
var0 = var2;
}
class="kw">return var0;
}
class="kw">public class="kw">static double lengthSquared(double var0, double var2) {
class="kw">return var0 * var0 + var2 * var2;
}
class="kw">public class="kw">static double length(double var0, double var2) {
class="kw">return Math.sqrt(lengthSquared(var0, var2));
}
class="kw">public class="kw">static double lengthSquared(double var0, double var2, double var4) {
class="kw">return var0 * var0 + var2 * var2 + var4 * var4;
}
class="kw">public class="kw">static double length(double var0, double var2, double var4) {
class="kw">return Math.sqrt(lengthSquared(var0, var2, var4));
}
class="kw">public class="kw">static double maxValue(double var0, double var2) {
class="kw">return var2 > var0 ? var2 : var0;
}
class="kw">public class="kw">static double clipToZero(double var0) {
class="kw">return clipToZero(var0, EPSILON_DOUBLE);
}
class="kw">public class="kw">static double clipToZero(double var0, double var2) {
class="kw">return var0 >= -var2 && var0 <= var2 ? 0.0 : var0;
}
class="kw">public class="kw">static float clipToZero(float var0) {
class="kw">return clipToZero(var0, EPSILON_FLOAT);
}
class="kw">public class="kw">static float clipToZero(float var0, float var1) {
class="kw">return var0 >= -var1 && var0 <= var1 ? 0.0F : var0;
}
class="kw">public class="kw">static boolean closeToZero(double var0) {
class="kw">return closeToZero(var0, EPSILON_DOUBLE);
}
class="kw">public class="kw">static boolean closeToZero(double var0, double var2) {
class="kw">return var0 >= -var2 && var0 <= var2;
}
class="kw">public class="kw">static boolean closeToZero(float var0) {
class="kw">return closeToZero(var0, EPSILON_FLOAT);
}
class="kw">public class="kw">static boolean closeToZero(float var0, float var1) {
class="kw">return var0 >= -var1 && var0 <= var1;
}
class="kw">public class="kw">static double clamp(double var0, double var2, double var4) {
if (var0 > var4) {
class="kw">return var0 < var2 ? var2 : var4;
} else {
class="kw">return var0 < var2 ? var2 : var0;
}
}
class="kw">public class="kw">static float clamp(float var0, float var1, float var2) {
if (var0 > var2) {
class="kw">return var0 < var1 ? var1 : var2;
} else {
class="kw">return var0 < var1 ? var1 : var0;
}
}
class="kw">public class="kw">static int clamp(int var0, int var1, int var2) {
if (var0 > var2) {
class="kw">return var0 < var1 ? var1 : var2;
} else {
class="kw">return var0 < var1 ? var1 : var0;
}
}
class="kw">public class="kw">static long clamp(long var0, long var2, long var4) {
if (var0 > var4) {
class="kw">return var0 < var2 ? var2 : var4;
} else {
class="kw">return var0 < var2 ? var2 : var0;
}
}
class="kw">public class="kw">static long saturatedMultiply(long var0, long var2) {
try {
class="kw">return Math.multiplyExact(var0, var2);
} catch (ArithmeticException var5) {
class="kw">return var0 < 0L == var2 < 0L ? Long.MAX_VALUE : Long.MIN_VALUE;
}
}
class="kw">public class="kw">static int getPercentageOf(int var0, int var1) {
class="kw">return (int)(var0 / (var1 - 1.0) * 100.0);
}
class="kw">public class="kw">static double percent(int var0, int var1) {
class="kw">return var1 == 0 ? 0.0 : var0 * 100.0 / var1;
}
class="kw">public class="kw">static int fastRound(float var0) {
class="kw">return fastFloor(var0 + 0.5F);
}
class="kw">public class="kw">static long fastRound(double var0) {
class="kw">return fastFloor(var0 + 0.5);
}
class="kw">public class="kw">static int fastFloor(float var0) {
int var1 = (int)var0;
if (var1 <= var0) {
class="kw">return var1;
} else {
class="kw">return var0 < -2.1474836E9F ? Integer.MIN_VALUE : var1 - 1;
}
}
class="kw">public class="kw">static long fastFloor(double var0) {
long var2 = (long)var0;
if (var2 <= var0) {
class="kw">return var2;
} else {
class="kw">return var0 < -9.223372E18F ? Long.MIN_VALUE : var2 - 1L;
}
}
class="kw">public class="kw">static int fastCeil(float var0) {
int var1 = (int)var0;
if (!(var0 > 0.0F) || var0 == var1) {
class="kw">return var1;
} else {
class="kw">return var0 > 2.1474836E9F ? Integer.MAX_VALUE : var1 + 1;
}
}
class="kw">public class="kw">static long fastCeil(double var0) {
long var2 = (long)var0;
if (!(var0 > 0.0) || var0 == var2) {
class="kw">return var2;
} else {
class="kw">return var0 > 9.223372E18F ? Long.MAX_VALUE : var2 + 1L;
}
}
class="kw">private MathUtil() {
}
class="kw">public class="kw">static float halfFloatToFloat(int var0) {
int var1 = var0 & 1023;
int var2 = var0 & 31744;
if (var2 == 31744) {
var2 = 261120;
} else if (var2 != 0) {
var2 += 114688;
if (var1 == 0 && var2 > 115712) {
class="kw">return Float.intBitsToFloat((var0 & 32768) << 16 | var2 << 13 | 1023);
}
} else if (var1 != 0) {
var2 = 115712;
do {
var1 <<= 1;
var2 -= 1024;
} while ((var1 & 1024) == 0);
var1 &= 1023;
}
class="kw">return Float.intBitsToFloat((var0 & 32768) << 16 | (var2 | var1) << 13);
}
class="kw">public class="kw">static int halfFloatFromFloat(float var0) {
int var1 = Float.floatToIntBits(var0);
int var2 = var1 >>> 16 & 32768;
int var3 = (var1 & 2147483647) + 4096;
if (var3 >= 1199570944) {
if ((var1 & 2147483647) >= 1199570944) {
class="kw">return var3 < 2139095040 ? var2 | 31744 : var2 | 31744 | (var1 & 8388607) >>> 13;
} else {
class="kw">return var2 | 31743;
}
} else {
if (var3 >= 947912704) {
class="kw">return var2 | var3 - 939524096 >>> 13;
}
if (var3 < 855638016) {
class="kw">return var2;
}
var3 = (var1 & 2147483647) >>> 23;
class="kw">return var2 | (var1 & 8388607 | 8388608) + (8388608 >>> var3 - 102) >>> 126 - var3;
}
}
class="kw">public class="kw">static int byteCount(int var0) {
if (var0 > 65535) {
class="kw">return 4;
} else if (var0 > 255) {
class="kw">return 2;
} else {
class="kw">return var0 > 0 ? 1 : 0;
}
}
class="kw">public class="kw">static int packInt(int var0, int var1) {
class="kw">return var0 << 16 | var1 & 65535;
}
class="kw">public class="kw">static int unpackLeft(int var0) {
int var1 = var0 >> 16 & 65535;
if ((var1 & 32768) != 0) {
var1 |= -65536;
}
class="kw">return var1;
}
class="kw">public class="kw">static int unpackRight(int var0) {
int var1 = var0 & 65535;
if ((var1 & 32768) != 0) {
var1 |= -65536;
}
class="kw">return var1;
}
class="kw">public class="kw">static long packLong(int var0, int var1) {
class="kw">return (long)var0 << 32 | var1 & 4294967295L;
}
class="kw">public class="kw">static int unpackLeft(long var0) {
class="kw">return (int)(var0 >> 32);
}
class="kw">public class="kw">static int unpackRight(long var0) {
class="kw">return (int)var0;
}
@Nonnull
class="kw">public class="kw">static Vector3i rotateVectorYAxis(@Nonnull Vector3i var0, int var1, boolean var2) {
float var3 = (float) (Math.PI / 180.0) * var1;
int var4;
int var5;
if (var2) {
var4 = (int)(var0.x * TrigMathUtil.cos(var3) - var0.z * TrigMathUtil.sin(var3));
var5 = (int)(var0.x * TrigMathUtil.sin(var3) + var0.z * TrigMathUtil.cos(var3));
} else {
var4 = (int)(var0.x * TrigMathUtil.cos(var3) + var0.z * TrigMathUtil.sin(var3));
var5 = (int)(-var0.x * TrigMathUtil.sin(var3) + var0.z * TrigMathUtil.cos(var3));
}
class="kw">return new Vector3i(var4, var0.y, var5);
}
@Nonnull
class="kw">public class="kw">static Vector3d rotateVectorYAxis(@Nonnull Vector3d var0, int var1, boolean var2) {
float var3 = (float) (Math.PI / 180.0) * var1;
double var4;
double var6;
if (var2) {
var4 = var0.x * TrigMathUtil.cos(var3) - var0.z * TrigMathUtil.sin(var3);
var6 = var0.x * TrigMathUtil.sin(var3) + var0.z * TrigMathUtil.cos(var3);
} else {
var4 = var0.x * TrigMathUtil.cos(var3) + var0.z * TrigMathUtil.sin(var3);
var6 = -var0.x * TrigMathUtil.sin(var3) + var0.z * TrigMathUtil.cos(var3);
}
class="kw">return new Vector3d(var4, var0.y, var6);
}
class="kw">public class="kw">static float wrapAngle(float var0) {
var0 %= (float) (Math.PI * 2);
if (var0 <= (float) -Math.PI) {
var0 += (float) (Math.PI * 2);
} else if (var0 > (float) Math.PI) {
var0 -= (float) (Math.PI * 2);
}
class="kw">return var0;
}
class="kw">public class="kw">static float lerp(float var0, float var1, float var2) {
class="kw">return lerpUnclamped(var0, var1, clamp(var2, 0.0F, 1.0F));
}
class="kw">public class="kw">static float lerpUnclamped(float var0, float var1, float var2) {
class="kw">return var0 + var2 * (var1 - var0);
}
class="kw">public class="kw">static double lerp(double var0, double var2, double var4) {
class="kw">return lerpUnclamped(var0, var2, clamp(var4, 0.0, 1.0));
}
class="kw">public class="kw">static float seededLerp(float var0, float var1, long var2) {
int var4 = (int)(var2 ^ var2 >>> 32) & 16777215;
float var5 = var4 / 1.6777215E7F;
class="kw">return var0 + var5 * (var1 - var0);
}
class="kw">public class="kw">static double lerpUnclamped(double var0, double var2, double var4) {
class="kw">return var0 + var4 * (var2 - var0);
}
class="kw">public class="kw">static float shortAngleDistance(float var0, float var1) {
float var2 = (var1 - var0) % (float) (Math.PI * 2);
class="kw">return 2.0F * var2 % (float) (Math.PI * 2) - var2;
}
class="kw">public class="kw">static float lerpAngle(float var0, float var1, float var2) {
class="kw">return var0 + shortAngleDistance(var0, var1) * var2;
}
class="kw">public class="kw">static double floorMod(double var0, double var2) {
class="kw">return var0 - Math.floor(var0 / var2) * var2;
}
class="kw">public class="kw">static double compareAngle(double var0, double var2) {
double var4 = var2 - var0;
class="kw">return floorMod(var4 + Math.PI, Math.PI * 2) - Math.PI;
}
class="kw">public class="kw">static double percentile(@Nonnull long[] var0, double var1) {
if (var0.length == 1) {
class="kw">return var0[0];
}
if (var1 >= 1.0) {
class="kw">return var0[var0.length - 1];
}
double var3 = (var0.length + 1) * var1;
double var5 = var1 * (var0.length - 1) + 1.0;
long var7;
long var9;
if (var3 >= 1.0) {
var7 = var0[floor(var5) - 1];
var9 = var0[floor(var5)];
} else {
var7 = var0[0];
var9 = var0[1];
}
if (var7 == var9) {
class="kw">return var7;
}
double var11 = var5 - floor(var5);
class="kw">return var7 + var11 * (var9 - var7);
}
class="kw">public class="kw">static double distanceToLineSq(double var0, double var2, double var4, double var6, double var8, double var10) {
double var12 = var0 - var4;
double var14 = var2 - var6;
double var16 = var8 - var4;
double var18 = var10 - var6;
class="kw">return distanceToLineSq(var0, var2, var4, var6, var8, var10, var12, var14, var16, var18);
}
class="kw">public class="kw">static double distanceToLineSq(
double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16, double var18
) {
double var20 = var12 * var16 + var14 * var18;
var20 /= var16 * var16 + var18 * var18;
double var22 = var4;
double var24 = var6;
if (var20 > 1.0) {
var22 = var8;
var24 = var10;
} else if (var20 > 0.0) {
var22 = var4 + var20 * var16;
var24 = var6 + var20 * var18;
}
var16 = var0 - var22;
var18 = var2 - var24;
class="kw">return var16 * var16 + var18 * var18;
}
class="kw">public class="kw">static double distanceToInfLineSq(double var0, double var2, double var4, double var6, double var8, double var10) {
double var12 = var0 - var4;
double var14 = var2 - var6;
double var16 = var8 - var4;
double var18 = var10 - var6;
class="kw">return distanceToInfLineSq(var0, var2, var4, var6, var12, var14, var16, var18);
}
class="kw">public class="kw">static double distanceToInfLineSq(double var0, double var2, double var4, double var6, double var8, double var10, double var12, double var14) {
double var16 = var8 * var12 + var10 * var14;
var16 /= var12 * var12 + var14 * var14;
double var18 = var4 + var16 * var12;
double var20 = var6 + var16 * var14;
var12 = var0 - var18;
var14 = var2 - var20;
class="kw">return var12 * var12 + var14 * var14;
}
class="kw">public class="kw">static int sideOfLine(double var0, double var2, double var4, double var6, double var8, double var10) {
class="kw">return (var4 - var0) * (var10 - var2) - (var6 - var2) * (var8 - var0) >= 0.0 ? 1 : -1;
}
class="kw">public class="kw">static Rotation3f getRotationForHitNormal(Vector3d var0) {
if (var0 == null) {
class="kw">return new Rotation3f(Rotation3f.IDENTITY);
} else if (var0.y == 1.0) {
class="kw">return new Rotation3f(Rotation3f.IDENTITY);
} else if (var0.y == -1.0) {
class="kw">return new Rotation3f(0.0F, 0.0F, (float) Math.PI);
} else if (var0.x == 1.0) {
class="kw">return new Rotation3f(0.0F, 0.0F, (float) (-Math.PI / 2));
} else if (var0.x == -1.0) {
class="kw">return new Rotation3f(0.0F, 0.0F, (float) (Math.PI / 2));
} else if (var0.z == 1.0) {
class="kw">return new Rotation3f((float) (Math.PI / 2), 0.0F, 0.0F);
} else {
class="kw">return var0.z == -1.0 ? new Rotation3f((float) (-Math.PI / 2), 0.0F, 0.0F) : new Rotation3f(Rotation3f.IDENTITY);
}
}
class="kw">public class="kw">static String getNameForHitNormal(Vector3d var0) {
if (var0 == null) {
class="kw">return "UP";
} else if (var0.y == 1.0) {
class="kw">return "UP";
} else if (var0.y == -1.0) {
class="kw">return "DOWN";
} else if (var0.x == 1.0) {
class="kw">return "WEST";
} else if (var0.x == -1.0) {
class="kw">return "EAST";
} else if (var0.z == 1.0) {
class="kw">return "NORTH";
} else {
class="kw">return var0.z == -1.0 ? "SOUTH" : "UP";
}
}
class="kw">public class="kw">static float mapToRange(float var0, float var1, float var2, float var3, float var4) {
float var5 = (var0 - var1) / (var2 - var1);
class="kw">return var3 + var5 * (var4 - var3);
}
}