PhysicsBodyStateUpdater class

Пакет: com.hypixel.hytale.server.core.modules.physics.util

Файл: com/hypixel/hytale/server/core/modules/physics/util/PhysicsBodyStateUpdater.java

Поля (1)

МодификаторыТипИмя
static double MIN_VELOCITY

Методы (12)

МодификаторыВозвратСигнатура
protected void addAccelerationvoid addAcceleration(@Nonnull PhysicsBodyState var1, double var2)
protected void addAccelerationvoid addAcceleration(@Nonnull PhysicsBodyState var1)
protected void assignAccelerationvoid assignAcceleration(@Nonnull PhysicsBodyState var1)
protected void computeAccelerationvoid computeAcceleration(double var1)
protected void computeAccelerationvoid computeAcceleration(@Nonnull PhysicsBodyState var1, boolean var2, @Nonnull ForceProvider[] var3, double var4, double var6)
protected void convertAccelerationToVelocityvoid convertAccelerationToVelocity(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3)
public void updatevoid update(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3, double var5, boolean var7, @Nonnull ForceProvider[] var8)
protected void updateAndClampVelocityvoid updateAndClampVelocity(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3)
static void updatePositionAfterVelocityvoid updatePositionAfterVelocity(@Nonnull PhysicsBodyState var0, @Nonnull PhysicsBodyState var1, double var2)
static void updatePositionBeforeVelocityvoid updatePositionBeforeVelocity(@Nonnull PhysicsBodyState var0, @Nonnull PhysicsBodyState var1, double var2)
abstract updatePositionBeforeVelocity updatePositionBeforeVelocity(var1, var2, var5)
protected void updateVelocityvoid updateVelocity(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.physics.util;

class="kw">import com.hypixel.hytale.math.vector.Vector3dUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class PhysicsBodyStateUpdater {
   class="kw">protected class="kw">static double MIN_VELOCITY = 1.0E-6;
   @Nonnull
   class="kw">protected Vector3d acceleration = new Vector3d();
   class="kw">protected class="kw">final ForceAccumulator accumulator = new ForceAccumulator();

   class="kw">public PhysicsBodyStateUpdater() {
   }

   class="kw">public void update(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3, double var5, boolean var7, @Nonnull ForceProvider[] var8) {
      this.computeAcceleration(var1, var7, var8, var3, var5);
      updatePositionBeforeVelocity(var1, var2, var5);
      this.updateAndClampVelocity(var1, var2, var5);
   }

   class="kw">protected class="kw">static void updatePositionBeforeVelocity(@Nonnull PhysicsBodyState var0, @Nonnull PhysicsBodyState var1, double var2) {
      var1.position.set(var0.position).fma(var2, var0.velocity);
   }

   class="kw">protected class="kw">static void updatePositionAfterVelocity(@Nonnull PhysicsBodyState var0, @Nonnull PhysicsBodyState var1, double var2) {
      var1.position.set(var0.position).fma(var2, var1.velocity);
   }

   class="kw">protected void updateAndClampVelocity(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3) {
      this.updateVelocity(var1, var2, var3);
      Vector3dUtil.clipToZero(var2.velocity, MIN_VELOCITY);
   }

   class="kw">protected void updateVelocity(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3) {
      var2.velocity.set(var1.velocity).fma(var3, this.acceleration);
   }

   class="kw">protected void computeAcceleration(double var1) {
      this.acceleration.set(this.accumulator.force).mul(1.0 / var1);
   }

   class="kw">protected void computeAcceleration(@Nonnull PhysicsBodyState var1, boolean var2, @Nonnull ForceProvider[] var3, double var4, double var6) {
      this.accumulator.computeResultingForce(var1, var2, var3, var4, var6);
      this.computeAcceleration(var4);
   }

   class="kw">protected void assignAcceleration(@Nonnull PhysicsBodyState var1) {
      var1.velocity.set(this.acceleration);
   }

   class="kw">protected void addAcceleration(@Nonnull PhysicsBodyState var1, double var2) {
      var1.velocity.fma(var2, this.acceleration);
   }

   class="kw">protected void addAcceleration(@Nonnull PhysicsBodyState var1) {
      var1.velocity.add(this.acceleration);
   }

   class="kw">protected void convertAccelerationToVelocity(@Nonnull PhysicsBodyState var1, @Nonnull PhysicsBodyState var2, double var3) {
      Vector3dUtil.clipToZero(var2.velocity.mul(var3).add(var1.velocity), MIN_VELOCITY);
   }
}