PlaneProjectorVectorProvider class

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

Файл: com/hypixel/hytale/builtin/hytalegenerator/vectorproviders/PlaneProjectorVectorProvider.java

extends: VectorProvider

Поля (2)

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

Методы (1)

МодификаторыВозвратСигнатура
if if(var3 == 0.0)

Исходный код

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

class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class PlaneProjectorVectorProvider class="kw">extends VectorProvider {
   @Nonnull
   class="kw">private class="kw">final VectorProvider vectorProvider;
   @Nonnull
   class="kw">private class="kw">final VectorProvider planeA;
   @Nonnull
   class="kw">private class="kw">final VectorProvider planeB;
   @Nonnull
   class="kw">private class="kw">final Vector3d rVector;
   @Nonnull
   class="kw">private class="kw">final Vector3d rPlaneA;
   @Nonnull
   class="kw">private class="kw">final Vector3d rPlaneB;
   @Nonnull
   class="kw">private class="kw">final Vector3d rNormal;

   class="kw">public PlaneProjectorVectorProvider(@Nonnull VectorProvider var1, @Nonnull VectorProvider var2, @Nonnull VectorProvider var3) {
      this.vectorProvider = var1;
      this.planeA = var2;
      this.planeB = var3;
      this.rVector = new Vector3d();
      this.rPlaneA = new Vector3d();
      this.rPlaneB = new Vector3d();
      this.rNormal = new Vector3d();
   }

   @Override
   class="kw">public void process(@Nonnull VectorProvider.Context var1, @Nonnull Vector3d var2) {
      this.vectorProvider.process(var1, this.rVector);
      this.planeA.process(var1, this.rPlaneA);
      this.planeB.process(var1, this.rPlaneB);
      this.rPlaneA.cross(this.rPlaneB, this.rNormal);
      double var3 = this.rNormal.lengthSquared();
      if (var3 == 0.0) {
         var2.set(this.rVector);
      } else {
         double var5 = this.rVector.dot(this.rNormal);
         var2.set(this.rVector).fma(-var5 / var3, this.rNormal);
      }
   }
}