ShellDensity class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.density
Файл: com/hypixel/hytale/builtin/hytalegenerator/density/ShellDensity.java
extends: Density
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
ZERO_DELTA |
|
double |
var2 |
|
double |
var4 |
|
double |
var6 |
|
|
var6 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(var4 == 0.0) |
|
|
if if(this.isMirrored && var6 > 90.0) |
Исходный код
Показать/скрыть
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">public class ShellDensity 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">final Double2DoubleFunction angleCurve;
@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 isMirrored;
@Nonnull
class="kw">private class="kw">final Vector3d rRadialVector;
class="kw">public ShellDensity(@Nonnull Double2DoubleFunction var1, @Nonnull Double2DoubleFunction var2, @Nonnull Vector3d var3, boolean var4) {
this.angleCurve = var1;
this.distanceCurve = var2;
this.axis = var3;
this.isMirrored = var4;
this.rRadialVector = new Vector3d();
}
@Override
class="kw">public double process(@Nonnull Density.Context var1) {
double var2 = var1.position.length();
if (this.axis.length() == 0.0) {
class="kw">return 0.0;
}
this.rRadialVector.set(var1.position);
double var4 = this.distanceCurve.applyAsDouble(var2);
if (var4 == 0.0) {
class="kw">return 0.0;
}
if (this.rRadialVector.length() <= 1.0E-9) {
class="kw">return var4;
}
double var6 = VectorUtil.angle(this.rRadialVector, this.axis);
var6 /= Math.PI;
var6 *= 180.0;
if (this.isMirrored && var6 > 90.0) {
var6 = 180.0 - var6;
}
class="kw">return var4 * this.angleCurve.applyAsDouble(var6);
}
}