HyCodeYourTale
classpublicPriority 3

Triangle2d

com.hypixel.hytale.math.shape.Triangle2d

12

Methods

12

Public Methods

3

Fields

4

Constructors

Constructors

public
Triangle2d(Vector2d a, Vector2d b, Vector2d c)
public
Triangle2d()
public
Triangle2d(Vector2d[] points)
public
Triangle2d(Vector2d[] points, int a, int b, int c)

Methods

Public Methods (12)

public
Vector2d getA()
public
Vector2d getB()
public
Vector2d getC()
public
double getMaxX()
public
double getMaxY()
public
double getMinX()
public
double getMinY()
public
Vector2d getRandom(Random random)
@Nonnull
public
Vector2d getRandom(Random random, Vector2d vec)
@Nonnull
public
void setA(Vector2d a)
public
void setB(Vector2d b)
public
void setC(Vector2d c)

Fields

Private/Package Fields (3)

privateVector2d a
privateVector2d b
privateVector2d c

Related Classes

Used By

Source Code

package com.hypixel.hytale.math.shape;

import com.hypixel.hytale.math.vector.Vector2d;
import java.util.Random;
import javax.annotation.Nonnull;

public class Triangle2d {
   private Vector2d a;
   private Vector2d b;
   private Vector2d c;

   public Triangle2d(Vector2d a, Vector2d b, Vector2d c) {
      this.a = a;
      this.b = b;
      this.c = c;
   }

   public Triangle2d() {
      this(new Vector2d(), new Vector2d(), new Vector2d());
   }

   public Triangle2d(@Nonnull Vector2d[] points) {
      this(points, 0, 1, 2);
   }

   public Triangle2d(@Nonnull Vector2d[] points, int a, int b, int c) {
      this(points[a], points[b], points[c]);
   }

   public Vector2d getA() {
      return this.a;
   }

   public void setA(Vector2d a) {
      this.a = a;
   }

   public Vector2d getB() {
      return this.b;
   }

   public void setB(Vector2d b) {
      this.b = b;
   }

   public Vector2d getC() {
      return this.c;
   }

   public void setC(Vector2d c) {
      this.c = c;
   }

   public double getMinX() {
      double min = this.a.x;
      if (min > this.b.x) {
         min = this.b.x;
      }

      if (min > this.c.x) {
         min = this.c.x;
      }

      return min;
   }

   public double getMinY() {
      double min = this.a.y;
      if (min > this.b.y) {
         min = this.b.y;
      }

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

      return min;
   }

   public double getMaxX() {
      double max = this.a.x;
      if (max < this.b.x) {
         max = this.b.x;
      }

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

      return max;
   }

   public double getMaxY() {
      double max = this.a.y;
      if (max < this.b.y) {
         max = this.b.y;
      }

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

      return max;
   }

   @Nonnull
   public Vector2d getRandom(@Nonnull Random random) {
      return this.getRandom(random, new Vector2d());
   }

   @Nonnull
   public Vector2d getRandom(@Nonnull Random random, @Nonnull Vector2d vec) {
      double p = random.nextDouble();
      double q = random.nextDouble();
      if (p + q > 1.0) {
         p = 1.0 - p;
         q = 1.0 - q;
      }

      vec.assign(-this.a.x * (1.0 - p - q) + this.b.x * p + this.c.x * q, -this.a.y * (1.0 - p - q) + this.b.y * p + this.c.y * q);
      return vec;
   }
}