Move vectors to static creators, for caching

This commit is contained in:
Kenzie Togami
2018-10-19 13:13:32 -07:00
parent 399e0ad5fa
commit 2c8b2fe089
69 changed files with 366 additions and 334 deletions

View File

@ -29,27 +29,27 @@ import javax.annotation.Nullable;
*/
public enum Direction {
NORTH(new Vector3(0, 0, -1), Flag.CARDINAL),
EAST(new Vector3(1, 0, 0), Flag.CARDINAL),
SOUTH(new Vector3(0, 0, 1), Flag.CARDINAL),
WEST(new Vector3(-1, 0, 0), Flag.CARDINAL),
NORTH(Vector3.at(0, 0, -1), Flag.CARDINAL),
EAST(Vector3.at(1, 0, 0), Flag.CARDINAL),
SOUTH(Vector3.at(0, 0, 1), Flag.CARDINAL),
WEST(Vector3.at(-1, 0, 0), Flag.CARDINAL),
UP(new Vector3(0, 1, 0), Flag.UPRIGHT),
DOWN(new Vector3(0, -1, 0), Flag.UPRIGHT),
UP(Vector3.at(0, 1, 0), Flag.UPRIGHT),
DOWN(Vector3.at(0, -1, 0), Flag.UPRIGHT),
NORTHEAST(new Vector3(1, 0, -1), Flag.ORDINAL),
NORTHWEST(new Vector3(-1, 0, -1), Flag.ORDINAL),
SOUTHEAST(new Vector3(1, 0, 1), Flag.ORDINAL),
SOUTHWEST(new Vector3(-1, 0, 1), Flag.ORDINAL),
NORTHEAST(Vector3.at(1, 0, -1), Flag.ORDINAL),
NORTHWEST(Vector3.at(-1, 0, -1), Flag.ORDINAL),
SOUTHEAST(Vector3.at(1, 0, 1), Flag.ORDINAL),
SOUTHWEST(Vector3.at(-1, 0, 1), Flag.ORDINAL),
WEST_NORTHWEST(new Vector3(-Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
WEST_SOUTHWEST(new Vector3(-Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
NORTH_NORTHWEST(new Vector3(-Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
NORTH_NORTHEAST(new Vector3(Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
EAST_NORTHEAST(new Vector3(Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
EAST_SOUTHEAST(new Vector3(Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
SOUTH_SOUTHEAST(new Vector3(Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
SOUTH_SOUTHWEST(new Vector3(-Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL);
WEST_NORTHWEST(Vector3.at(-Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
WEST_SOUTHWEST(Vector3.at(-Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
NORTH_NORTHWEST(Vector3.at(-Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
NORTH_NORTHEAST(Vector3.at(Math.sin(Math.PI / 8), 0, -Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
EAST_NORTHEAST(Vector3.at(Math.cos(Math.PI / 8), 0, -Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
EAST_SOUTHEAST(Vector3.at(Math.cos(Math.PI / 8), 0, Math.sin(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
SOUTH_SOUTHEAST(Vector3.at(Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL),
SOUTH_SOUTHWEST(Vector3.at(-Math.sin(Math.PI / 8), 0, Math.cos(Math.PI / 8)), Flag.SECONDARY_ORDINAL);
private final Vector3 direction;
private final int flags;

View File

@ -61,7 +61,7 @@ public class Location {
* @param z the Z coordinate
*/
public Location(Extent extent, double x, double y, double z) {
this(extent, new Vector3(x, y, z), Vector3.ZERO);
this(extent, Vector3.at(x, y, z), Vector3.ZERO);
}
/**
@ -86,7 +86,7 @@ public class Location {
* @param direction the direction vector
*/
public Location(Extent extent, double x, double y, double z, Vector3 direction) {
this(extent, new Vector3(x, y, z), direction);
this(extent, Vector3.at(x, y, z), direction);
}
/**
@ -101,7 +101,7 @@ public class Location {
* @param pitch the pitch, in degrees
*/
public Location(Extent extent, double x, double y, double z, float yaw, float pitch) {
this(extent, new Vector3(x, y, z), yaw, pitch);
this(extent, Vector3.at(x, y, z), yaw, pitch);
}
/**
@ -211,7 +211,7 @@ public class Location {
double yaw = Math.toRadians(this.getYaw());
double pitch = Math.toRadians(this.getPitch());
double xz = Math.cos(pitch);
return new Vector3(
return Vector3.at(
-xz * Math.sin(yaw),
-Math.sin(pitch),
xz * Math.cos(yaw));

View File

@ -83,7 +83,7 @@ public class TargetBlock {
double h = (checkDistance * Math.cos(Math.toRadians(yRotation)));
offset = new Vector3((h * Math.cos(Math.toRadians(xRotation))),
offset = Vector3.at((h * Math.cos(Math.toRadians(xRotation))),
(checkDistance * Math.sin(Math.toRadians(yRotation))),
(h * Math.sin(Math.toRadians(xRotation))));

View File

@ -44,6 +44,6 @@ public class VectorAdapter implements JsonDeserializer<Vector3> {
double y = jsonArray.get(1).getAsDouble();
double z = jsonArray.get(2).getAsDouble();
return new Vector3(x, y, z);
return Vector3.at(x, y, z);
}
}