classpublicPriority 3
Triangle4d
com.hypixel.hytale.math.shape.Triangle4d
9
Methods
9
Public Methods
3
Fields
4
Constructors
Constructors
public
Triangle4d(Vector4d a, Vector4d b, Vector4d c)public
Triangle4d()public
Triangle4d(Vector4d[] points)public
Triangle4d(Vector4d[] points, int a, int b, int c)Methods
Public Methods (9)
public
Vector4d getA()public
Vector4d getB()public
Vector4d getC()public
double getMax(int component)public
double getMin(int component)public
Vector4d getRandom(Random random)@Nonnull
public
Vector4d getRandom(Random random, Vector4d vec)@Nonnull
public
Triangle2d to2d(Triangle2d target)@Nonnull
public
String toString()@Nonnull@Override
Fields
Private/Package Fields (3)
private
Vector4d aprivate
Vector4d bprivate
Vector4d cRelated Classes
Source Code
package com.hypixel.hytale.math.shape;
import com.hypixel.hytale.math.matrix.Matrix4d;
import com.hypixel.hytale.math.vector.Vector4d;
import java.util.Random;
import javax.annotation.Nonnull;
public class Triangle4d {
private Vector4d a;
private Vector4d b;
private Vector4d c;
public Triangle4d(Vector4d a, Vector4d b, Vector4d c) {
this.a = a;
this.b = b;
this.c = c;
}
public Triangle4d() {
this(new Vector4d(), new Vector4d(), new Vector4d());
}
public Triangle4d(@Nonnull Vector4d[] points) {
this(points, 0, 1, 2);
}
public Triangle4d(@Nonnull Vector4d[] points, int a, int b, int c) {
this(points[a], points[b], points[c]);
}
public Vector4d getA() {
return this.a;
}
public Vector4d getB() {
return this.b;
}
public Vector4d getC() {
return this.c;
}
public double getMin(int component) {
double min = this.a.get(component);
if (min > this.b.get(component)) {
min = this.b.get(component);
}
if (min > this.c.get(component)) {
min = this.c.get(component);
}
return min;
}
public double getMax(int component) {
double max = this.a.get(component);
if (max < this.b.get(component)) {
max = this.b.get(component);
}
if (max < this.c.get(component)) {
max = this.c.get(component);
}
return max;
}
@Nonnull
public Triangle4d assign(@Nonnull Vector4d v1, @Nonnull Vector4d v2, @Nonnull Vector4d v3) {
this.a.assign(v1);
this.b.assign(v2);
this.c.assign(v3);
return this;
}
@Nonnull
public Vector4d getRandom(@Nonnull Random random) {
return this.getRandom(random, new Vector4d());
}
@Nonnull
public Vector4d getRandom(@Nonnull Random random, @Nonnull Vector4d vec) {
double p = random.nextDouble();
double q = random.nextDouble() * (1.0 - p);
double pq = 1.0 - p - q;
vec.assign(
this.a.x * pq + this.b.x * p + this.c.x * q,
this.a.y * pq + this.b.y * p + this.c.y * q,
this.a.z * pq + this.b.z * p + this.c.z * q,
this.a.w * pq + this.b.w * p + this.c.w * q
);
return vec;
}
@Nonnull
public Triangle4d multiply(@Nonnull Matrix4d matrix) {
return this.multiply(matrix, this);
}
@Nonnull
public Triangle4d multiply(@Nonnull Matrix4d matrix, @Nonnull Triangle4d target) {
matrix.multiply(this.a, target.a);
matrix.multiply(this.b, target.b);
matrix.multiply(this.c, target.c);
return target;
}
@Nonnull
public Triangle2d to2d(@Nonnull Triangle2d target) {
target.getA().assign(this.a.x, this.a.y);
target.getB().assign(this.b.x, this.b.y);
target.getC().assign(this.c.x, this.c.y);
return target;
}
@Nonnull
public Triangle4d perspectiveTransform() {
this.a.perspectiveTransform();
this.b.perspectiveTransform();
this.c.perspectiveTransform();
return this;
}
@Nonnull
@Override
public String toString() {
return "Triangle4d{a=" + this.a + ", b=" + this.b + ", c=" + this.c + "}";
}
}