Distance2Function interface

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

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

Методы (1)

МодификаторыВозвратСигнатура
abstract double evaldouble eval(double var1, double var3)

Исходный код

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

class="kw">import com.hypixel.hytale.procedurallib.NoiseFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.CellDistanceFunction;
class="kw">import com.hypixel.hytale.procedurallib.logic.cell.evaluator.PointEvaluator;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">abstract class DistanceNoise class="kw">implements NoiseFunction {
   class="kw">protected class="kw">final CellDistanceFunction cellDistanceFunction;
   class="kw">protected class="kw">final PointEvaluator pointEvaluator;
   class="kw">protected class="kw">final DistanceNoise.Distance2Function distance2Function;

   class="kw">public DistanceNoise(CellDistanceFunction var1, PointEvaluator var2, DistanceNoise.Distance2Function var3) {
      this.cellDistanceFunction = var1;
      this.pointEvaluator = var2;
      this.distance2Function = var3;
   }

   class="kw">public CellDistanceFunction getCellDistanceFunction() {
      class="kw">return this.cellDistanceFunction;
   }

   class="kw">public DistanceNoise.Distance2Function getDistance2Function() {
      class="kw">return this.distance2Function;
   }

   @Override
   class="kw">public double get(int var1, int var2, double var3, double var5) {
      var3 = this.cellDistanceFunction.scale(var3);
      var5 = this.cellDistanceFunction.scale(var5);
      int var7 = this.cellDistanceFunction.getCellX(var3, var5);
      int var8 = this.cellDistanceFunction.getCellY(var3, var5);
      ResultBuffer.ResultBuffer2d var9 = this.localBuffer2d();
      var9.distance = Double.POSITIVE_INFINITY;
      var9.distance2 = Double.POSITIVE_INFINITY;
      this.cellDistanceFunction.transition2D(var2, var3, var5, var7, var8, var9, this.pointEvaluator);
      var9.distance = Math.sqrt(var9.distance);
      var9.distance2 = Math.sqrt(var9.distance2);
      class="kw">return GeneralNoise.limit(this.distance2Function.eval(var9.distance, var9.distance2)) * 2.0 - 1.0;
   }

   @Override
   class="kw">public double get(int var1, int var2, double var3, double var5, double var7) {
      var3 = this.cellDistanceFunction.scale(var3);
      var5 = this.cellDistanceFunction.scale(var5);
      var7 = this.cellDistanceFunction.scale(var7);
      int var9 = this.cellDistanceFunction.getCellX(var3, var5, var7);
      int var10 = this.cellDistanceFunction.getCellY(var3, var5, var7);
      int var11 = this.cellDistanceFunction.getCellZ(var3, var5, var7);
      ResultBuffer.ResultBuffer3d var12 = this.localBuffer3d();
      var12.distance = Double.POSITIVE_INFINITY;
      var12.distance2 = Double.POSITIVE_INFINITY;
      this.cellDistanceFunction.transition3D(var2, var3, var5, var7, var9, var10, var11, var12, this.pointEvaluator);
      var12.distance = Math.sqrt(var12.distance);
      var12.distance2 = Math.sqrt(var12.distance2);
      class="kw">return GeneralNoise.limit(this.distance2Function.eval(var12.distance, var12.distance2)) * 2.0 - 1.0;
   }

   class="kw">protected class="kw">abstract ResultBuffer.ResultBuffer2d localBuffer2d();

   class="kw">protected class="kw">abstract ResultBuffer.ResultBuffer3d localBuffer3d();

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "DistanceNoise{cellDistanceFunction="
         + this.cellDistanceFunction
         + ", pointEvaluator="
         + this.pointEvaluator
         + ", distance2Function="
         + this.distance2Function
         + "}";
   }

   @FunctionalInterface
   class="kw">public class="kw">interface Distance2Function {
      double eval(double var1, double var3);
   }

   class="kw">public enum Distance2Mode {
      ADD(new DistanceNoise.Distance2Function() {
         @Override
         class="kw">public double eval(double var1, double var3) {
            class="kw">return var1 + var3;
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "AddDistance2Function{}";
         }
      }),
      SUB(new DistanceNoise.Distance2Function() {
         @Override
         class="kw">public double eval(double var1, double var3) {
            class="kw">return var3 - var1;
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "SubDistance2Function{}";
         }
      }),
      MUL(new DistanceNoise.Distance2Function() {
         @Override
         class="kw">public double eval(double var1, double var3) {
            class="kw">return var1 * var3;
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "MulDistance2Function{}";
         }
      }),
      DIV(new DistanceNoise.Distance2Function() {
         @Override
         class="kw">public double eval(double var1, double var3) {
            class="kw">return var1 / var3;
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "DivDistance2Function{}";
         }
      }),
      MIN(new DistanceNoise.Distance2Function() {
         @Override
         class="kw">public double eval(double var1, double var3) {
            class="kw">return var1;
         }

         @Nonnull
         @Override
         class="kw">public String toString() {
            class="kw">return "MinDistance2Function{}";
         }
      }),
      MAX(new DistanceNoise.Distance2Function() {
         @Override
         class="kw">public double eval(double var1, double var3) {
            class="kw">return var3;
         }

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

      class="kw">private class="kw">final DistanceNoise.Distance2Function function;

      Distance2Mode(DistanceNoise.Distance2Function nullxx) {
         this.function = nullxx;
      }

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