InterpolationFunction interface

Пакет: com.hypixel.hytale.procedurallib.logic

Файл: com/hypixel/hytale/procedurallib/logic/GeneralNoise.java

Методы (1)

МодификаторыВозвратСигнатура
abstract double interpolatedouble interpolate(double var1)

Исходный код

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

class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">final class GeneralNoise {
   class="kw">public class="kw">static class="kw">final int X_PRIME = 1619;
   class="kw">public class="kw">static class="kw">final int Y_PRIME = 31337;
   class="kw">public class="kw">static class="kw">final int Z_PRIME = 6971;
   class="kw">private class="kw">static class="kw">final DoubleArray.Double2[] GRAD_2D = new DoubleArray.Double2[]{
      new DoubleArray.Double2(-1.0, -1.0),
      new DoubleArray.Double2(1.0, -1.0),
      new DoubleArray.Double2(-1.0, 1.0),
      new DoubleArray.Double2(1.0, 1.0),
      new DoubleArray.Double2(0.0, -1.0),
      new DoubleArray.Double2(-1.0, 0.0),
      new DoubleArray.Double2(0.0, 1.0),
      new DoubleArray.Double2(1.0, 0.0)
   };
   class="kw">private class="kw">static class="kw">final DoubleArray.Double3[] GRAD_3D = new DoubleArray.Double3[]{
      new DoubleArray.Double3(1.0, 1.0, 0.0),
      new DoubleArray.Double3(-1.0, 1.0, 0.0),
      new DoubleArray.Double3(1.0, -1.0, 0.0),
      new DoubleArray.Double3(-1.0, -1.0, 0.0),
      new DoubleArray.Double3(1.0, 0.0, 1.0),
      new DoubleArray.Double3(-1.0, 0.0, 1.0),
      new DoubleArray.Double3(1.0, 0.0, -1.0),
      new DoubleArray.Double3(-1.0, 0.0, -1.0),
      new DoubleArray.Double3(0.0, 1.0, 1.0),
      new DoubleArray.Double3(0.0, -1.0, 1.0),
      new DoubleArray.Double3(0.0, 1.0, -1.0),
      new DoubleArray.Double3(0.0, -1.0, -1.0),
      new DoubleArray.Double3(1.0, 1.0, 0.0),
      new DoubleArray.Double3(0.0, -1.0, 1.0),
      new DoubleArray.Double3(-1.0, 1.0, 0.0),
      new DoubleArray.Double3(0.0, -1.0, -1.0)
   };

   class="kw">private GeneralNoise() {
      throw new UnsupportedOperationException();
   }

   class="kw">public class="kw">static int fastFloor(double var0) {
      class="kw">return var0 >= 0.0 ? (int)var0 : (int)var0 - 1;
   }

   class="kw">public class="kw">static int fastCeil(double var0) {
      class="kw">return var0 >= 0.0 ? (int)var0 + 1 : (int)var0;
   }

   class="kw">public class="kw">static double lerp(double var0, double var2, double var4) {
      class="kw">return var0 + var4 * (var2 - var0);
   }

   class="kw">public class="kw">static int hash2D(int var0, int var1, int var2) {
      int var3 = var0;
      var3 ^= 1619 * var1;
      var3 ^= 31337 * var2;
      var3 = var3 * var3 * var3 * 60493;
      class="kw">return var3 >> 13 ^ var3;
   }

   class="kw">public class="kw">static int hash3D(int var0, int var1, int var2, int var3) {
      int var4 = var0;
      var4 ^= 1619 * var1;
      var4 ^= 31337 * var2;
      var4 ^= 6971 * var3;
      var4 = var4 * var4 * var4 * 60493;
      class="kw">return var4 >> 13 ^ var4;
   }

   class="kw">public class="kw">static double gradCoord2D(int var0, int var1, int var2, double var3, double var5) {
      int var7 = hash2D(var0, var1, var2);
      DoubleArray.Double2 var8 = GRAD_2D[var7 & 7];
      class="kw">return var3 * var8.x + var5 * var8.y;
   }

   class="kw">public class="kw">static double gradCoord3D(int var0, int var1, int var2, int var3, double var4, double var6, double var8) {
      int var10 = hash3D(var0, var1, var2, var3);
      DoubleArray.Double3 var11 = GRAD_3D[var10 & 15];
      class="kw">return var4 * var11.x + var6 * var11.y + var8 * var11.z;
   }

   class="kw">public class="kw">static double limit(double var0) {
      if (var0 < 0.0) {
         class="kw">return 0.0;
      } else {
         class="kw">return var0 > 1.0 ? 1.0 : var0;
      }
   }

   @FunctionalInterface
   class="kw">public class="kw">interface InterpolationFunction {
      double interpolate(double var1);
   }

   class="kw">public enum InterpolationMode {
      LINEAR(new GeneralNoise.InterpolationFunction() {
         @Override
         class="kw">public double interpolate(double var1) {
            class="kw">return var1;
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "LinearInterpolationFunction{}";
         }
      }),
      HERMITE(new GeneralNoise.InterpolationFunction() {
         @Override
         class="kw">public double interpolate(double var1) {
            class="kw">return var1 * var1 * (3.0 - 2.0 * var1);
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "HermiteInterpolationFunction{}";
         }
      }),
      QUINTIC(new GeneralNoise.InterpolationFunction() {
         @Override
         class="kw">public double interpolate(double var1) {
            class="kw">return var1 * var1 * var1 * (var1 * (var1 * 6.0 - 15.0) + 10.0);
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "QuinticInterpolationFunction{}";
         }
      });

      class="kw">public class="kw">final GeneralNoise.InterpolationFunction function;

      InterpolationMode(GeneralNoise.InterpolationFunction nullxx) {
         this.function = nullxx;
      }

      class="kw">public GeneralNoise.InterpolationFunction getFunction() {
         class="kw">return this.function;
      }
   }
}