OrthogonalProjectionProvider class

Пакет: com.hypixel.hytale.math.hitdetection.projection

Файл: com/hypixel/hytale/math/hitdetection/projection/OrthogonalProjectionProvider.java

implements: MatrixProvider

Поля (1)

МодификаторыТипИмя
final BuilderCodec<OrthogonalProjectionProvider> CODEC

Методы (2)

МодификаторыВозвратСигнатура
public double getRangedouble getRange()
if if(this.invalid)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.math.hitdetection.MatrixProvider;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Matrix4d;

class="kw">public class OrthogonalProjectionProvider class="kw">implements MatrixProvider {
   class="kw">public class="kw">static class="kw">final BuilderCodec<OrthogonalProjectionProvider> CODEC = BuilderCodec.builder(
         OrthogonalProjectionProvider.class, OrthogonalProjectionProvider::new
      )
      .append(new KeyedCodec<>("Left", Codec.DOUBLE), (var0, var1) -> var0.left = var1, var0 -> var0.left)
      .add()
      .append(new KeyedCodec<>("Right", Codec.DOUBLE), (var0, var1) -> var0.right = var1, var0 -> var0.right)
      .add()
      .append(new KeyedCodec<>("Top", Codec.DOUBLE), (var0, var1) -> var0.top = var1, var0 -> var0.top)
      .add()
      .append(new KeyedCodec<>("Bottom", Codec.DOUBLE), (var0, var1) -> var0.bottom = var1, var0 -> var0.bottom)
      .add()
      .append(new KeyedCodec<>("Near", Codec.DOUBLE), (var0, var1) -> var0.near = var1, var0 -> var0.near)
      .add()
      .append(new KeyedCodec<>("Far", Codec.DOUBLE), (var0, var1) -> var0.far = var1, var0 -> var0.far)
      .add()
      .build();
   class="kw">protected class="kw">final Matrix4d matrix;
   class="kw">protected class="kw">final Matrix4d rotMatrix = new Matrix4d();
   class="kw">protected boolean invalid;
   class="kw">protected double left;
   class="kw">protected double right;
   class="kw">protected double bottom;
   class="kw">protected double top;
   class="kw">protected double near;
   class="kw">protected double far;
   class="kw">protected double yaw;
   class="kw">protected double pitch;
   class="kw">protected double roll;

   class="kw">public OrthogonalProjectionProvider() {
      this(new Matrix4d(), 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0);
   }

   class="kw">public OrthogonalProjectionProvider(
      Matrix4d var1, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16, double var18
   ) {
      this.matrix = var1;
      this.left = var2;
      this.right = var4;
      this.bottom = var6;
      this.top = var8;
      this.near = var10;
      this.far = var12;
      this.yaw = var14;
      this.pitch = var16;
      this.roll = var18;
      this.invalid = true;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setLeft(double var1) {
      this.left = var1;
      this.invalid = true;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setRight(double var1) {
      this.right = var1;
      this.invalid = true;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setBottom(double var1) {
      this.bottom = var1;
      this.invalid = true;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setTop(double var1) {
      this.top = var1;
      this.invalid = true;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setNear(double var1) {
      this.near = var1;
      this.invalid = true;
      class="kw">return this;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setFar(double var1) {
      this.far = var1;
      this.invalid = true;
      class="kw">return this;
   }

   class="kw">public double getRange() {
      class="kw">return this.far;
   }

   @Nonnull
   class="kw">public OrthogonalProjectionProvider setRotation(double var1, double var3, double var5) {
      this.yaw = var1;
      this.pitch = var3;
      this.roll = var5;
      class="kw">return this;
   }

   @Override
   class="kw">public Matrix4d getMatrix() {
      if (this.invalid) {
         this.matrix.setOrtho(-this.left, this.right, -this.bottom, this.top, this.near, this.far);
         this.matrix.rotate(-this.roll, 0.0, 0.0, 1.0);
         this.matrix.rotate(-this.pitch, 1.0, 0.0, 0.0);
         this.matrix.rotate(-this.yaw, 0.0, 1.0, 0.0);
         this.invalid = false;
      }

      class="kw">return this.matrix;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "OrthogonalProjectionProvider{left="
         + this.left
         + ", right="
         + this.right
         + ", bottom="
         + this.bottom
         + ", top="
         + this.top
         + ", near="
         + this.near
         + ", far="
         + this.far
         + "}";
   }
}