DistanceToGraphEdgeDensity class

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

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

extends: Density

Поля (12)

МодификаторыТипИмя
Vector3dc var10
double var11
double var13
double var15
var15
var15
Vector3dc var2
double var3
List var5
double var6
var6
GraphSpace.Edge var9

Методы (4)

МодификаторыВозвратСигнатура
abstract for for(int var8 = 0; var8 < var5.size()
if if(var1.graphNode == null)
if if(var11 >= var13)
if if(var15 < var6)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.VectorUtil;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.graph.GraphSpace;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;

class="kw">public class DistanceToGraphEdgeDensity class="kw">extends Density {
   @Nonnull
   class="kw">private class="kw">final Vector3d rLocalPosition = new Vector3d();
   @Nonnull
   class="kw">private class="kw">final Vector3d rEdgeVector = new Vector3d();

   class="kw">public DistanceToGraphEdgeDensity() {
   }

   @Override
   class="kw">public double process(@Nonnull Density.Context var1) {
      if (var1.graphNode == null) {
         class="kw">return Double.MAX_VALUE;
      }

      Vector3dc var2 = var1.graphNode.position();
      this.rLocalPosition.set(var1.position).sub(var2);
      if (VectorUtil.isZero(this.rLocalPosition)) {
         class="kw">return 0.0;
      }

      double var3 = this.rLocalPosition.lengthSquared();
      List var5 = var1.graphNode.edges();
      double var6 = var3;

      for (int var8 = 0; var8 < var5.size(); var8++) {
         GraphSpace.Edge var9 = var5.get(var8);
         Vector3dc var10 = var9.otherNode(var1.graphNode).position();
         this.rEdgeVector.set(var10).sub(var2);
         double var11 = this.rLocalPosition.dot(this.rEdgeVector);
         if (!(var11 <= 0.0)) {
            double var13 = this.rEdgeVector.lengthSquared();
            double var15;
            if (var11 >= var13) {
               var15 = var3 - 2.0 * var11 + var13;
            } else {
               var15 = var3 - var11 * var11 / var13;
            }

            if (var15 < var6) {
               var6 = var15;
            }
         }
      }

      class="kw">return var6 <= 0.0 ? 0.0 : Math.sqrt(var6);
   }
}