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