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);
   }
}