InterpolatedCurve class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/math/InterpolatedCurve.java

implements: Double2DoubleFunction

Поля (5)

МодификаторыТипИмя
double var3
double var3
double var5
double var5
var5

Методы (6)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException()
public double getdouble get(double var1)
if if(var1 < this.positionA)
if if(var1 > this.positionB)
if if(this.distance == 0.0)
public double transitionCurvedouble transitionCurve(double var1)

Исходный код

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

class="kw">import it.unimi.dsi.fastutil.doubles.Double2DoubleFunction;
class="kw">import javax.annotation.Nonnull;

class="kw">public class InterpolatedCurve class="kw">implements Double2DoubleFunction {
   @Nonnull
   class="kw">private class="kw">final Double2DoubleFunction functionA;
   @Nonnull
   class="kw">private class="kw">final Double2DoubleFunction functionB;
   class="kw">private class="kw">final double positionA;
   class="kw">private class="kw">final double positionB;
   class="kw">private class="kw">final double distance;
   class="kw">private class="kw">final double smoothTransition;

   class="kw">public InterpolatedCurve(double var1, double var3, double var5, @Nonnull Double2DoubleFunction var7, @Nonnull Double2DoubleFunction var8) {
      if (!(var5 < 0.0) && !(var5 > 1.0)) {
         this.smoothTransition = var5;
         this.positionA = Math.min(var1, var3);
         this.positionB = Math.max(var1, var3);
         this.distance = this.positionB - this.positionA;
         this.functionA = var7;
         this.functionB = var8;
      } else {
         throw new IllegalArgumentException();
      }
   }

   class="kw">public double get(double var1) {
      if (var1 < this.positionA) {
         class="kw">return this.functionA.get(var1);
      }

      if (var1 > this.positionB) {
         class="kw">return this.functionB.get(var1);
      }

      if (this.distance == 0.0) {
         class="kw">return (this.functionA.get(var1) + this.functionB.get(var1)) * 0.5;
      }

      double var3 = this.transitionCurve((var1 - this.positionA) / this.distance);
      double var5 = 1.0 - var3;
      class="kw">return var5 * this.functionA.get(var1) + var3 * this.functionB.get(var1);
   }

   class="kw">public double transitionCurve(double var1) {
      double var3 = var1 * Math.PI;
      double var5 = Math.cos(var3);
      var5++;
      var5 /= 2.0;
      var5 = 1.0 - var5;
      class="kw">return var5 * this.smoothTransition + var1 * (1.0 - this.smoothTransition);
   }
}