AxisDensity class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.density
Файл: com/hypixel/hytale/builtin/hytalegenerator/density/AxisDensity.java
extends: Density
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
ZERO_DELTA |
|
double |
var2 |
|
Vector3dc |
var2 |
|
double |
var3 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.isAnchored) |
|
|
if if(var1 == null) |
|
|
if if(var2 == null) |
private |
double |
processAnchoreddouble processAnchored(@Nonnull Density.Context var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.density;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.VectorUtil;
class="kw">import it.unimi.dsi.fastutil.doubles.Double2DoubleFunction;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">public class AxisDensity class="kw">extends Density {
class="kw">public class="kw">static class="kw">final double ZERO_DELTA = 1.0E-9;
@Nonnull
class="kw">private class="kw">static class="kw">final Vector3d ZERO_VECTOR = new Vector3d();
@Nonnull
class="kw">private class="kw">final Double2DoubleFunction distanceCurve;
@Nonnull
class="kw">private class="kw">final Vector3d axis;
class="kw">private class="kw">final boolean isAnchored;
@Nonnull
class="kw">private class="kw">final Vector3d rPosition;
@Nonnull
class="kw">private class="kw">final Vector3d r0;
@Nonnull
class="kw">private class="kw">final Vector3d r1;
@Nonnull
class="kw">private class="kw">final Vector3d r2;
@Nonnull
class="kw">private class="kw">final Vector3d r3;
@Nonnull
class="kw">private class="kw">final Vector3d r4;
class="kw">public AxisDensity(@Nonnull Double2DoubleFunction var1, @Nonnull Vector3d var2, boolean var3) {
this.distanceCurve = var1;
this.axis = var2;
this.isAnchored = var3;
this.rPosition = new Vector3d();
this.r0 = new Vector3d();
this.r1 = new Vector3d();
this.r2 = new Vector3d();
this.r3 = new Vector3d();
this.r4 = new Vector3d();
}
@Override
class="kw">public double process(@Nonnull Density.Context var1) {
if (this.axis.length() == 0.0) {
class="kw">return 0.0;
}
if (this.isAnchored) {
class="kw">return this.processAnchored(var1);
}
double var2 = VectorUtil.distanceToLine3d(var1.position, ZERO_VECTOR, this.axis, this.r0, this.r1, this.r2, this.r3, this.r4);
class="kw">return this.distanceCurve.get(var2);
}
class="kw">private double processAnchored(@Nonnull Density.Context var1) {
if (var1 == null) {
class="kw">return 0.0;
}
Vector3dc var2 = var1.densityAnchor;
if (var2 == null) {
class="kw">return 0.0;
}
this.rPosition.set(var1.position).sub(var2);
double var3 = VectorUtil.distanceToLine3d(this.rPosition, ZERO_VECTOR, this.axis, this.r0, this.r1, this.r2, this.r3, this.r4);
class="kw">return this.distanceCurve.get(var3);
}
}