Skip to content

Commit

Permalink
Reuse instead of allocate and throwaway
Browse files Browse the repository at this point in the history
  • Loading branch information
mitchej123 committed Feb 15, 2024
1 parent a13a812 commit f2898a5
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/main/java/remoteio/client/render/TessellatorCapture.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public static void reset() {
offsetZ = 0;
}

private static ThreadLocal<double[]> rotationPoint = ThreadLocal.withInitial(() -> new double[3]);
public static double[] rotatePoint(double x, double y, double z) {
if (capture) {
final double radians = Math.toRadians(rotationAngle);
Expand All @@ -36,14 +37,18 @@ public static double[] rotatePoint(double x, double y, double z) {
x = nx;
z = nz;
}

return new double[] { x, y, z };
final double[] doubles = rotationPoint.get();
doubles[0] = x;
doubles[1] = y;
doubles[2] = z;
return doubles;
}

public static double[] rotatePointWithOffset(double x, double y, double z) {
return rotatePointWithOffset(x, y, z, offsetX, 0, offsetZ);
}

private static ThreadLocal<double[]> rotationPointOffset = ThreadLocal.withInitial(() -> new double[3]);
public static double[] rotatePointWithOffset(double x, double y, double z, double offsetX, double offsetY,
double offsetZ) {
if (capture) {
Expand All @@ -69,7 +74,10 @@ public static double[] rotatePointWithOffset(double x, double y, double z, doubl
x -= 0.5;
z -= 0.5;
}

return new double[] { x, y, z };
final double[] doubles = rotationPointOffset.get();
doubles[0] = x;
doubles[1] = y;
doubles[2] = z;
return doubles;
}
}

0 comments on commit f2898a5

Please sign in to comment.