Quad4d class

Пакет: com.hypixel.hytale.math.shape

Файл: com/hypixel/hytale/math/shape/Quad4d.java

Поля (12)

МодификаторыТипИмя
private Vector4d a
double var2
var2
var2
var2
double var2
var2
var2
var2
double var3
double var5
double var7

Методы (12)

МодификаторыВозвратСигнатура
public Vector4d getVector4d get(int var1)
public Vector4d getAVector4d getA()
public Vector4d getBVector4d getB()
public Vector4d getCVector4d getC()
public Vector4d getDVector4d getD()
public double getMaxdouble getMax(int var1)
public double getMindouble getMin(int var1)
public boolean isFullyInsideFrustumboolean isFullyInsideFrustum()
public void perspectiveTransformvoid perspectiveTransform()
return switchreturn switch(var1)
abstract this this(var1, 0, 1, 2, 3)
abstract this this(var1[var2], var1[var3], var1[var4], var1[var5])

Исходный код

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

class="kw">import com.hypixel.hytale.math.vector.Vector4dUtil;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Matrix4d;
class="kw">import org.joml.Vector4d;

class="kw">public class Quad4d {
   class="kw">private Vector4d a;
   class="kw">private Vector4d b;
   class="kw">private Vector4d c;
   class="kw">private Vector4d d;

   class="kw">public Quad4d(Vector4d var1, Vector4d var2, Vector4d var3, Vector4d var4) {
      this.a = var1;
      this.b = var2;
      this.c = var3;
      this.d = var4;
   }

   class="kw">public Quad4d() {
      this(new Vector4d().zero(), new Vector4d().zero(), new Vector4d().zero(), new Vector4d().zero());
   }

   class="kw">public Quad4d(@Nonnull Vector4d[] var1) {
      this(var1, 0, 1, 2, 3);
   }

   class="kw">public Quad4d(@Nonnull Vector4d[] var1, int var2, int var3, int var4, int var5) {
      this(var1[var2], var1[var3], var1[var4], var1[var5]);
   }

   class="kw">public boolean isFullyInsideFrustum() {
      class="kw">return Vector4dUtil.isInsideFrustum(this.a)
         && Vector4dUtil.isInsideFrustum(this.b)
         && Vector4dUtil.isInsideFrustum(this.c)
         && Vector4dUtil.isInsideFrustum(this.d);
   }

   class="kw">public Vector4d getA() {
      class="kw">return this.a;
   }

   class="kw">public Vector4d getB() {
      class="kw">return this.b;
   }

   class="kw">public Vector4d getC() {
      class="kw">return this.c;
   }

   class="kw">public Vector4d getD() {
      class="kw">return this.d;
   }

   class="kw">public Vector4d get(int var1) {
      class="kw">return class="kw">switch (var1) {
         case 0 -> this.a;
         case 1 -> this.b;
         case 2 -> this.c;
         case 3 -> this.d;
         class="kw">default -> throw new IllegalArgumentException("Index must be in range of 0 to 3. Given: " + var1);
      };
   }

   class="kw">public double getMin(int var1) {
      double var2 = this.a.get(var1);
      if (var2 > this.b.get(var1)) {
         var2 = this.b.get(var1);
      }

      if (var2 > this.c.get(var1)) {
         var2 = this.c.get(var1);
      }

      if (var2 > this.d.get(var1)) {
         var2 = this.d.get(var1);
      }

      class="kw">return var2;
   }

   class="kw">public double getMax(int var1) {
      double var2 = this.a.get(var1);
      if (var2 < this.b.get(var1)) {
         var2 = this.b.get(var1);
      }

      if (var2 < this.c.get(var1)) {
         var2 = this.c.get(var1);
      }

      if (var2 < this.d.get(var1)) {
         var2 = this.d.get(var1);
      }

      class="kw">return var2;
   }

   @Nonnull
   class="kw">public Quad4d multiply(@Nonnull Matrix4d var1) {
      class="kw">return this.multiply(var1, this);
   }

   @Nonnull
   class="kw">public Quad4d multiply(@Nonnull Matrix4d var1, @Nonnull Quad4d var2) {
      var1.transform(this.a, var2.a);
      var1.transform(this.b, var2.b);
      var1.transform(this.c, var2.c);
      var1.transform(this.d, var2.d);
      class="kw">return var2;
   }

   @Nonnull
   class="kw">public Quad2d to2d(@Nonnull Quad2d var1) {
      var1.getA().set(this.a.x, this.a.y);
      var1.getB().set(this.b.x, this.b.y);
      var1.getC().set(this.c.x, this.c.y);
      var1.getD().set(this.d.x, this.d.y);
      class="kw">return var1;
   }

   @Nonnull
   class="kw">public Vector4d getCenter() {
      class="kw">return this.getCenter(new Vector4d());
   }

   @Nonnull
   class="kw">public Vector4d getCenter(@Nonnull Vector4d var1) {
      class="kw">return var1.set(
         (this.a.x + this.b.x + this.c.x + this.d.x) * 0.25,
         (this.a.y + this.b.y + this.c.y + this.d.y) * 0.25,
         (this.a.z + this.b.z + this.c.z + this.d.z) * 0.25,
         (this.a.w + this.b.w + this.c.w + this.d.w) * 0.25
      );
   }

   class="kw">public void perspectiveTransform() {
      Vector4dUtil.perspectiveTransform(this.a);
      Vector4dUtil.perspectiveTransform(this.b);
      Vector4dUtil.perspectiveTransform(this.c);
      Vector4dUtil.perspectiveTransform(this.d);
   }

   @Nonnull
   class="kw">public Vector4d getRandom(@Nonnull Random var1) {
      class="kw">return this.getRandom(var1, new Vector4d());
   }

   @Nonnull
   class="kw">public Vector4d getRandom(@Nonnull Random var1, @Nonnull Vector4d var2) {
      double var3 = var1.nextDouble();
      double var5 = var1.nextDouble() * (1.0 - var3);
      double var7 = 1.0 - var3 - var5;
      if (var1.nextBoolean()) {
         var2.set(
            this.a.x * var7 + this.b.x * var3 + this.c.x * var5,
            this.a.y * var7 + this.b.y * var3 + this.c.y * var5,
            this.a.z * var7 + this.b.z * var3 + this.c.z * var5,
            this.a.w * var7 + this.b.w * var3 + this.c.w * var5
         );
      } else {
         var2.set(
            this.a.x * var7 + this.c.x * var3 + this.d.x * var5,
            this.a.y * var7 + this.c.y * var3 + this.d.y * var5,
            this.a.z * var7 + this.c.z * var3 + this.d.z * var5,
            this.a.w * var7 + this.c.w * var3 + this.d.w * var5
         );
      }

      class="kw">return var2;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Quad4d{\na=" + this.a + ",\nb=" + this.b + ",\nc=" + this.c + ",\nd=" + this.d + "\n}";
   }
}