PhysicsMath class
Пакет: com.hypixel.hytale.server.core.modules.physics.util
Файл: com/hypixel/hytale/server/core/modules/physics/util/PhysicsMath.java
Поля (9)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
DENSITY_AIR |
|
|
var0 |
|
double |
var10 |
|
double |
var10 |
|
float |
var3 |
|
double |
var4 |
|
double |
var7 |
|
double |
var8 |
|
double |
var8 |
Методы (23)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
double |
computeDragCoefficientdouble computeDragCoefficient(double var0, double var2, double var4, double var6) |
static |
double |
computeProjectedAreadouble computeProjectedArea(double var0, double var2, double var4, @Nonnull Box var6) |
static |
double |
computeProjectedAreadouble computeProjectedArea(@Nonnull Vector3d var0, @Nonnull Box var1) |
abstract |
return |
computeProjectedAreareturn computeProjectedArea(var0.x, var0.y, var0.z, var1) |
static |
double |
computeTerminalSpeeddouble computeTerminalSpeed(double var0, double var2, double var4, double var6) |
static |
double |
getAccelerationdouble getAcceleration(double var0, double var2) |
static |
double |
getRelativeDensitydouble getRelativeDensity(Vector3d var0, Box var1) |
static |
double |
getTerminalVelocitydouble getTerminalVelocity(double var0, double var2, double var4, double var6) |
static |
float |
headingFromDirectionfloat headingFromDirection(double var0, double var2) |
static |
float |
headingXfloat headingX(float var0) |
static |
float |
headingZfloat headingZ(float var0) |
|
|
if if(var0 != 0.0) |
|
|
if if(var2 != 0.0) |
|
|
if if(var4 != 0.0) |
|
|
if if(var0 < 0.0F) |
static |
double |
lengthOfIntersectiondouble lengthOfIntersection(double var0, double var2, double var4, double var6) |
static |
float |
normalizeAnglefloat normalizeAngle(float var0) |
static |
float |
normalizeTurnAnglefloat normalizeTurnAngle(float var0) |
static |
float |
pitchFromDirectionfloat pitchFromDirection(double var0, double var2, double var4) |
static |
float |
pitchXfloat pitchX(float var0) |
static |
float |
pitchYfloat pitchY(float var0) |
static |
double |
volumeOfIntersectiondouble volumeOfIntersection(@Nonnull Box var0, @Nonnull Vector3dc var1, @Nonnull Box var2, @Nonnull Vector3dc var3) |
static |
double |
volumeOfIntersectiondouble volumeOfIntersection(@Nonnull Box var0, @Nonnull Vector3dc var1, @Nonnull Box var2, double var3, double var5, double var7) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.physics.util;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">public class PhysicsMath {
class="kw">public class="kw">static class="kw">final double DENSITY_AIR = 1.2;
class="kw">public class="kw">static class="kw">final double DENSITY_WATER = 998.0;
class="kw">public class="kw">static class="kw">final double AIR_DENSITY = 0.001225;
class="kw">public class="kw">static class="kw">final float HEADING_DIRECTION = 1.0F;
class="kw">public PhysicsMath() {
}
class="kw">public class="kw">static double getAcceleration(double var0, double var2) {
double var4 = Math.abs(var0 / var2);
class="kw">return 32.0 * (Math.signum(var2) - Math.signum(var0) * (var4 * var4 * var4));
}
class="kw">public class="kw">static double getTerminalVelocity(double var0, double var2, double var4, double var6) {
double var8 = var0 * 1000.0;
double var10 = var4 * 1000000.0;
class="kw">return Math.sqrt(64.0 * var8 / (var2 * var10 * var6));
}
class="kw">public class="kw">static double getRelativeDensity(Vector3d var0, Box var1) {
class="kw">return 0.001225;
}
class="kw">public class="kw">static double computeDragCoefficient(double var0, double var2, double var4, double var6) {
class="kw">return var4 * var6 / (var2 * var0 * var0);
}
class="kw">public class="kw">static double computeTerminalSpeed(double var0, double var2, double var4, double var6) {
class="kw">return Math.sqrt(var4 * var6 / (var2 * var0));
}
class="kw">public class="kw">static double computeProjectedArea(double var0, double var2, double var4, @Nonnull Box var6) {
double var7 = 0.0;
if (var0 != 0.0) {
var7 += Math.abs(var0) * var6.depth() * var6.height();
}
if (var2 != 0.0) {
var7 += Math.abs(var2) * var6.depth() * var6.width();
}
if (var4 != 0.0) {
var7 += Math.abs(var4) * var6.width() * var6.height();
}
class="kw">return var7;
}
class="kw">public class="kw">static double computeProjectedArea(@Nonnull Vector3d var0, @Nonnull Box var1) {
class="kw">return computeProjectedArea(var0.x, var0.y, var0.z, var1);
}
class="kw">public class="kw">static double volumeOfIntersection(@Nonnull Box var0, @Nonnull Vector3dc var1, @Nonnull Box var2, @Nonnull Vector3dc var3) {
class="kw">return volumeOfIntersection(var0, var1, var2, var3.x(), var3.y(), var3.z());
}
class="kw">public class="kw">static double volumeOfIntersection(@Nonnull Box var0, @Nonnull Vector3dc var1, @Nonnull Box var2, double var3, double var5, double var7) {
var3 -= var1.x();
var5 -= var1.y();
var7 -= var1.z();
class="kw">return lengthOfIntersection(var0.min.x, var0.max.x, var3 + var2.min.x, var3 + var2.max.x)
* lengthOfIntersection(var0.min.y, var0.max.y, var5 + var2.min.y, var5 + var2.max.y)
* lengthOfIntersection(var0.min.z, var0.max.z, var7 + var2.min.z, var7 + var2.max.z);
}
class="kw">public class="kw">static double lengthOfIntersection(double var0, double var2, double var4, double var6) {
double var8 = Math.max(var0, var4);
double var10 = Math.min(var2, var6);
class="kw">return Math.max(0.0, var10 - var8);
}
class="kw">public class="kw">static float headingFromDirection(double var0, double var2) {
class="kw">return 1.0F * TrigMathUtil.atan2(-var0, -var2);
}
class="kw">public class="kw">static float normalizeAngle(float var0) {
var0 %= (float) (Math.PI * 2);
if (var0 < 0.0F) {
var0 += (float) (Math.PI * 2);
}
class="kw">return var0;
}
class="kw">public class="kw">static float normalizeTurnAngle(float var0) {
var0 = normalizeAngle(var0);
if (var0 >= (float) Math.PI) {
var0 -= (float) (Math.PI * 2);
}
class="kw">return var0;
}
class="kw">public class="kw">static float pitchFromDirection(double var0, double var2, double var4) {
class="kw">return TrigMathUtil.atan2(var2, Math.sqrt(var0 * var0 + var4 * var4));
}
@Nonnull
class="kw">public class="kw">static Vector3d vectorFromAngles(float var0, float var1, @Nonnull Vector3d var2) {
float var3 = pitchX(var1);
var2.y = pitchY(var1);
var2.x = headingX(var0) * var3;
var2.z = headingZ(var0) * var3;
class="kw">return var2;
}
class="kw">public class="kw">static float pitchX(float var0) {
class="kw">return TrigMathUtil.cos(var0);
}
class="kw">public class="kw">static float pitchY(float var0) {
class="kw">return TrigMathUtil.sin(var0);
}
class="kw">public class="kw">static float headingX(float var0) {
class="kw">return -TrigMathUtil.sin(1.0F * var0);
}
class="kw">public class="kw">static float headingZ(float var0) {
class="kw">return -TrigMathUtil.cos(1.0F * var0);
}
}