TrigDensity class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.density

Файл: com/hypixel/hytale/builtin/hytalegenerator/density/TrigDensity.java

extends: Density

Поля (5)

МодификаторыТипИмя
Sin, Cos, Tan, Asin, Acos, Atan
public static final Codec<TrigDensity.Function> CODEC
final double TAN_LIMIT
double var2
double var4

Методы (2)

МодификаторыВозвратСигнатура
Function Function()
if if(this.input == null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.density;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.math.Calculator;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class TrigDensity class="kw">extends Density {
   class="kw">private class="kw">static class="kw">final double TAN_LIMIT = 1000000.0;
   @Nonnull
   class="kw">private class="kw">final TrigDensity.Function function;
   class="kw">private class="kw">final double inputScale;
   @Nullable
   class="kw">private Density input;

   class="kw">public TrigDensity(@Nonnull TrigDensity.Function var1, double var2, Density var4) {
      this.function = var1;
      this.inputScale = var2;
      this.input = var4;
   }

   @Override
   class="kw">public double process(@Nonnull Density.Context var1) {
      if (this.input == null) {
         class="kw">return 0.0;
      }

      double var2 = this.input.process(var1) * this.inputScale;

      double var4 = class="kw">switch (this.function) {
         case Sin -> Math.sin(var2);
         case Cos -> Math.cos(var2);
         case Tan -> Calculator.clamp(-1000000.0, Math.tan(var2), 1000000.0);
         case Asin -> Math.asin(Calculator.clamp(-1.0, var2, 1.0));
         case Acos -> Math.acos(Calculator.clamp(-1.0, var2, 1.0));
         case Atan -> Math.atan(var2);
      };
      class="kw">return Double.isFinite(var4) ? var4 : 0.0;
   }

   @Override
   class="kw">public void setInputs(@Nonnull Density[] var1) {
      this.input = var1.length == 0 ? null : var1[0];
   }

   class="kw">public enum Function {
      Sin,
      Cos,
      Tan,
      Asin,
      Acos,
      Atan;

      @Nonnull
      class="kw">public class="kw">static class="kw">final Codec<TrigDensity.Function> CODEC = new EnumCodec<>(TrigDensity.Function.class);

      Function() {
      }
   }
}