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