DistortedCylinderShape class

Пакет: com.hypixel.hytale.server.worldgen.cave.shape.distorted

Файл: com/hypixel/hytale/server/worldgen/cave/shape/distorted/DistortedCylinderShape.java

extends: AbstractDistortedExtrusion

Поля (13)

МодификаторыТипИмя
final double PITCH_COMPENSATION_MIN
var0
var0
double var1
double var1
double var10
double var18
double var20
double var3
double var3
double var5
double var5
double var8

Методы (12)

МодификаторыВозвратСигнатура
public Factorypublic Factory()
abstract return new Vector3dreturn new Vector3d(this.o)
abstract return new Vector3dreturn new Vector3d(var1, var3, var5)
public DistortedShape createpublic DistortedShape create(@Nonnull Vector3d var1, @Nonnull Vector3d var2, double var3, double var5, double var7, double var9, double var11, double var13, double var15, GeneralNoise.InterpolationFunction var17)
static double getCompensationFactordouble getCompensationFactor(@Nonnull Vector3d var0)
static double getDimAtdouble getDimAt(double var0, double var2, double var4, double var6, @Nonnull GeneralNoise.InterpolationFunction var8)
abstract return getDimAtreturn getDimAt(var1, this.startWidth, this.midWidth, this.endWidth, this.interpolation)
abstract return getDimAtreturn getDimAt(var1, this.startHeight, this.midHeight, this.endHeight, this.interpolation)
static double getHeightCompensationdouble getHeightCompensation(double var0)
if if(var5 <= 0.0)
if if(var0 <= 0.0)
abstract super super(var1, var2, var15, var17, var19)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.cave.shape.distorted;

class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import com.hypixel.hytale.procedurallib.logic.GeneralNoise;
class="kw">import com.hypixel.hytale.server.worldgen.cave.shape.CaveNodeShapeUtils;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class DistortedCylinderShape class="kw">extends AbstractDistortedExtrusion {
   class="kw">protected class="kw">static class="kw">final double PITCH_COMPENSATION_MIN = 1.0;
   class="kw">protected class="kw">static class="kw">final double PITCH_COMPENSATION_RANGE = 3.0;
   @Nonnull
   class="kw">protected class="kw">final Vector3d o;
   @Nonnull
   class="kw">protected class="kw">final Vector3d v;
   class="kw">protected class="kw">final double startWidth;
   class="kw">protected class="kw">final double startHeight;
   class="kw">protected class="kw">final double midWidth;
   class="kw">protected class="kw">final double midHeight;
   class="kw">protected class="kw">final double endWidth;
   class="kw">protected class="kw">final double endHeight;

   class="kw">public DistortedCylinderShape(
      @Nonnull Vector3d var1,
      @Nonnull Vector3d var2,
      double var3,
      double var5,
      double var7,
      double var9,
      double var11,
      double var13,
      GeneralNoise.InterpolationFunction var15
   ) {
      this(var1, var2, var3, var5, var7, var9, var11, var13, MathUtil.maxValue(var3, var7, var11), MathUtil.maxValue(var5, var9, var13), var15);
   }

   class="kw">public DistortedCylinderShape(
      @Nonnull Vector3d var1,
      @Nonnull Vector3d var2,
      double var3,
      double var5,
      double var7,
      double var9,
      double var11,
      double var13,
      double var15,
      double var17,
      GeneralNoise.InterpolationFunction var19
   ) {
      super(var1, var2, var15, var17, var19);
      this.o = var1;
      this.v = var2;
      this.startWidth = var3;
      this.startHeight = var5;
      this.midWidth = var7;
      this.midHeight = var9;
      this.endWidth = var11;
      this.endHeight = var13;
   }

   @Nonnull
   @Override
   class="kw">public Vector3d getStart() {
      class="kw">return new Vector3d(this.o);
   }

   @Nonnull
   @Override
   class="kw">public Vector3d getEnd() {
      double var1 = this.o.x + this.v.x;
      double var3 = this.o.y + this.v.y;
      double var5 = this.o.z + this.v.z;
      class="kw">return new Vector3d(var1, var3, var5);
   }

   @Nonnull
   @Override
   class="kw">public Vector3d getAnchor(@Nonnull Vector3d var1, double var2, double var4, double var6) {
      double var8 = this.getHeightAt(var2);
      double var10 = this.getWidthAt(var2);
      class="kw">return CaveNodeShapeUtils.getPipeAnchor(var1, this.o, this.v, var10, var8, var10, var2, var4, var6);
   }

   @Override
   class="kw">public double getProjection(double var1, double var3) {
      double var5 = (var1 - this.o.x) * this.v.x + (var3 - this.o.z) * this.v.z;
      class="kw">return var5 / (this.v.x * this.v.x + this.v.z * this.v.z);
   }

   @Override
   class="kw">public boolean isValidProjection(double var1) {
      class="kw">return var1 > 0.0 && var1 < 1.0;
   }

   @Override
   class="kw">public double getYAt(double var1) {
      class="kw">return this.o.y + this.v.y * var1;
   }

   @Override
   class="kw">public double getWidthAt(double var1) {
      class="kw">return getDimAt(var1, this.startWidth, this.midWidth, this.endWidth, this.interpolation);
   }

   @Override
   class="kw">public double getHeightAt(double var1) {
      class="kw">return getDimAt(var1, this.startHeight, this.midHeight, this.endHeight, this.interpolation);
   }

   @Override
   class="kw">public double getDistanceSq(double var1, double var3, double var5) {
      if (var5 <= 0.0) {
         var1 -= this.o.x;
         var3 -= this.o.z;
      } else if (var5 >= 1.0) {
         var1 -= this.o.x + this.v.x;
         var3 -= this.o.z + this.v.z;
      } else {
         var1 -= this.o.x + this.v.x * var5;
         var3 -= this.o.z + this.v.z * var5;
      }

      class="kw">return var1 * var1 + var3 * var3;
   }

   @Override
   class="kw">public double getHeightComponent(double var1, double var3, double var5) {
      class="kw">return Math.sqrt(var3 - var5) / var1;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "DistortedCylinderShape{origin="
         + this.o
         + ", direction="
         + this.v
         + ", startWidth="
         + this.startWidth
         + ", startHeight="
         + this.startHeight
         + ", midWidth="
         + this.midWidth
         + ", midHeight="
         + this.midHeight
         + ", endWidth="
         + this.endWidth
         + ", endHeight="
         + this.endHeight
         + "}";
   }

   class="kw">protected class="kw">static double getDimAt(double var0, double var2, double var4, double var6, @Nonnull GeneralNoise.InterpolationFunction var8) {
      if (var0 <= 0.0) {
         class="kw">return var2;
      } else if (var0 >= 1.0) {
         class="kw">return var6;
      } else if (var0 <= 0.5) {
         var0 = var8.interpolate(var0 * 2.0);
         class="kw">return MathUtil.lerpUnclamped(var2, var4, var0);
      } else {
         var0 = var8.interpolate((var0 - 0.5) * 2.0);
         class="kw">return MathUtil.lerpUnclamped(var4, var6, var0);
      }
   }

   class="kw">protected class="kw">static double getCompensationFactor(@Nonnull Vector3d var0) {
      double var1 = var0.y / var0.length();
      double var3 = TrigMathUtil.asin(-var1);
      class="kw">return Math.abs(var3) / (float) (Math.PI / 2);
   }

   class="kw">protected class="kw">static double getHeightCompensation(double var0) {
      class="kw">return 1.0 + var0 * var0 * var0 * 3.0;
   }

   class="kw">public class="kw">static class Factory class="kw">implements DistortedShape.Factory {
      class="kw">public Factory() {
      }

      @Nonnull
      @Override
      class="kw">public DistortedShape create(
         @Nonnull Vector3d var1,
         @Nonnull Vector3d var2,
         double var3,
         double var5,
         double var7,
         double var9,
         double var11,
         double var13,
         double var15,
         GeneralNoise.InterpolationFunction var17
      ) {
         double var18 = DistortedCylinderShape.getCompensationFactor(var2);
         double var20 = DistortedCylinderShape.getHeightCompensation(var18);
         var7 *= var20;
         var11 *= var20;
         var15 *= var20;
         class="kw">return new DistortedCylinderShape(var1, var2, var5, var7, var9, var11, var13, var15, var17);
      }
   }
}