Box2D class

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

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

implements: Shape2D

Поля (7)

МодификаторыТипИмя
final BuilderCodec<Box2D> CODEC
double var1
double var3
double var3
double var5
double var6
double var8

Методы (12)

МодификаторыВозвратСигнатура
public double heightdouble height()
if if(this.min.x > var1.min.x)
if if(this.min.y > var1.min.y)
if if(this.max.x < var1.max.x)
if if(this.max.y < var1.max.y)
if if(this.min.x > this.max.x)
if if(this.min.y > this.max.y)
if if(var1.x < 0.0)
if if(var1.y < 0.0)
public boolean isIntersectingboolean isIntersecting(@Nonnull Box2D var1)
abstract this this()
public double widthdouble width()

Исходный код

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

class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.math.vector.Vector2dUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;

class="kw">public class Box2D class="kw">implements Shape2D {
   class="kw">public class="kw">static class="kw">final BuilderCodec<Box2D> CODEC = BuilderCodec.builder(Box2D.class, Box2D::new)
      .append(new KeyedCodec<>("Min", Vector2dUtil.CODEC), (var0, var1) -> var0.min.set(var1), var0 -> var0.min)
      .add()
      .append(new KeyedCodec<>("Max", Vector2dUtil.CODEC), (var0, var1) -> var0.max.set(var1), var0 -> var0.max)
      .add()
      .build();
   @Nonnull
   class="kw">public class="kw">final Vector2d min = new Vector2d();
   @Nonnull
   class="kw">public class="kw">final Vector2d max = new Vector2d();

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

   class="kw">public Box2D(@Nonnull Box2D var1) {
      this();
      this.min.set(var1.min);
      this.max.set(var1.max);
   }

   class="kw">public Box2D(@Nonnull Vector2d var1, @Nonnull Vector2d var2) {
      this();
      this.min.set(var1);
      this.max.set(var2);
   }

   class="kw">public Box2D(double var1, double var3, double var5, double var7) {
      this();
      this.min.set(var1, var3);
      this.max.set(var5, var7);
   }

   @Nonnull
   class="kw">public Box2D setMinMax(@Nonnull Vector2d var1, @Nonnull Vector2d var2) {
      this.min.set(var1);
      this.max.set(var2);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D setMinMax(@Nonnull double[] var1, @Nonnull double[] var2) {
      this.min.set(var1);
      this.max.set(var2);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D setMinMax(@Nonnull float[] var1, @Nonnull float[] var2) {
      this.min.set(var1);
      this.max.set(var2);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D setEmpty() {
      this.setMinMax(Double.MAX_VALUE, -Double.MAX_VALUE);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D setMinMax(double var1, double var3) {
      this.min.set(var1);
      this.max.set(var3);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D union(@Nonnull Box2D var1) {
      if (this.min.x > var1.min.x) {
         this.min.x = var1.min.x;
      }

      if (this.min.y > var1.min.y) {
         this.min.y = var1.min.y;
      }

      if (this.max.x < var1.max.x) {
         this.max.x = var1.max.x;
      }

      if (this.max.y < var1.max.y) {
         this.max.y = var1.max.y;
      }

      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D assign(@Nonnull Box2D var1) {
      this.min.set(var1.min);
      this.max.set(var1.max);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D minkowskiSum(@Nonnull Box2D var1) {
      this.min.sub(var1.max);
      this.max.sub(var1.min);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D normalize() {
      if (this.min.x > this.max.x) {
         double var1 = this.min.x;
         this.min.x = this.max.x;
         this.max.x = var1;
      }

      if (this.min.y > this.max.y) {
         double var3 = this.min.y;
         this.min.y = this.max.y;
         this.max.y = var3;
      }

      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D offset(@Nonnull Vector2d var1) {
      this.min.add(var1);
      this.max.add(var1);
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D sweep(@Nonnull Vector2d var1) {
      if (var1.x < 0.0) {
         this.min.x = this.min.x + var1.x;
      } else if (var1.x > 0.0) {
         this.max.x = this.max.x + var1.x;
      }

      if (var1.y < 0.0) {
         this.min.y = this.min.y + var1.y;
      } else if (var1.y > 0.0) {
         this.max.y = this.max.y + var1.y;
      }

      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D extendToInt() {
      this.min.floor();
      this.max.ceil();
      class="kw">return this;
   }

   @Nonnull
   class="kw">public Box2D extend(double var1, double var3) {
      this.min.sub(var1, var3);
      this.max.add(var1, var3);
      class="kw">return this;
   }

   class="kw">public double width() {
      class="kw">return this.max.x - this.min.x;
   }

   class="kw">public double height() {
      class="kw">return this.max.y - this.min.y;
   }

   class="kw">public boolean isIntersecting(@Nonnull Box2D var1) {
      class="kw">return !(this.min.x > var1.max.x) && !(var1.min.x > this.max.x) && !(this.min.y > var1.max.y) && !(var1.min.y > this.max.y);
   }

   @Nonnull
   @Override
   class="kw">public Box2D getBox(double var1, double var3) {
      class="kw">return new Box2D(this.min.x() + var1, this.min.y() + var3, this.max.x() + var1, this.max.y() + var3);
   }

   @Override
   class="kw">public boolean containsPosition(@Nonnull Vector2d var1, @Nonnull Vector2d var2) {
      double var3 = var2.x() - var1.x();
      double var5 = var2.y() - var1.y();
      class="kw">return var3 >= this.min.x() && var3 <= this.max.x() && var5 >= this.min.y() && var5 <= this.max.y();
   }

   @Override
   class="kw">public boolean containsPosition(@Nonnull Vector2d var1, double var2, double var4) {
      double var6 = var2 - var1.x();
      double var8 = var4 - var1.y();
      class="kw">return var6 >= this.min.x() && var6 <= this.max.x() && var8 >= this.min.y() && var8 <= this.max.y();
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Box2D{min=" + this.min + ", max=" + this.max + "}";
   }
}