summaryrefslogtreecommitdiff
path: root/src/main/java/net/tylermurphy/Minecraft/Util/Maths.java
diff options
context:
space:
mode:
authorTyler Murphy <tylerm@tylerm.dev>2023-04-17 12:12:01 -0400
committerTyler Murphy <tylerm@tylerm.dev>2023-04-17 12:12:01 -0400
commit180aad05decc7eefa87e4e45d6747c48f40e5361 (patch)
tree51545197f7c94b4022acab880772c9f4fc65db0e /src/main/java/net/tylermurphy/Minecraft/Util/Maths.java
downloadminecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.gz
minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.tar.bz2
minecraftjava-180aad05decc7eefa87e4e45d6747c48f40e5361.zip
Diffstat (limited to 'src/main/java/net/tylermurphy/Minecraft/Util/Maths.java')
-rwxr-xr-xsrc/main/java/net/tylermurphy/Minecraft/Util/Maths.java66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/Minecraft/Util/Maths.java b/src/main/java/net/tylermurphy/Minecraft/Util/Maths.java
new file mode 100755
index 0000000..89343e1
--- /dev/null
+++ b/src/main/java/net/tylermurphy/Minecraft/Util/Maths.java
@@ -0,0 +1,66 @@
+package net.tylermurphy.Minecraft.Util;
+
+import org.joml.Vector2f;
+import org.joml.Vector3f;
+import org.joml.Matrix4f;
+
+import net.tylermurphy.Minecraft.Scene.Camera;
+
+public class Maths {
+
+ public static Matrix4f createTransformationMatrix(Vector2f translation, Vector2f scale) {
+ Matrix4f matrix = new Matrix4f();
+ matrix.identity();
+ matrix.translate(translation.x, translation.y, 0);
+ matrix.scale(new Vector3f(scale.x, scale.y, 1f));
+ return matrix;
+ }
+
+ public static Matrix4f createTransformationMatrix(Vector3f translation, float rx, float ry, float rz, float scale) {
+ Matrix4f matrix = new Matrix4f();
+ matrix.identity();
+ matrix.translate(translation);
+ matrix.rotate((float) Math.toRadians(rx), new Vector3f(1,0,0));
+ matrix.rotate((float) Math.toRadians(ry), new Vector3f(0,1,0));
+ matrix.rotate((float) Math.toRadians(rz), new Vector3f(0,0,1));
+ matrix.scale(scale);
+ return matrix;
+ }
+
+ public static Matrix4f createViewMatrix(Camera camera) {
+ Matrix4f viewMatrix = new Matrix4f();
+ viewMatrix.identity();
+ viewMatrix.rotate((float) Math.toRadians(camera.getPitch()), new Vector3f(1, 0, 0));
+ viewMatrix.rotate((float) Math.toRadians(camera.getYaw()), new Vector3f(0, 1, 0));
+ Vector3f cameraPos = camera.getPosition();
+ Vector3f negativeCameraPos = new Vector3f(-cameraPos.x,-cameraPos.y,-cameraPos.z);
+ viewMatrix.translate(negativeCameraPos);
+ return viewMatrix;
+ }
+
+ public static float barryCentric(Vector3f p1, Vector3f p2, Vector3f p3, Vector2f pos) {
+ float det = (p2.z - p3.z) * (p1.x - p3.x) + (p3.x - p2.x) * (p1.z - p3.z);
+ float l1 = ((p2.z - p3.z) * (pos.x - p3.x) + (p3.x - p2.x) * (pos.y - p3.z)) / det;
+ float l2 = ((p3.z - p1.z) * (pos.x - p3.x) + (p1.x - p3.x) * (pos.y - p3.z)) / det;
+ float l3 = 1.0f - l1 - l2;
+ return l1 * p1.y + l2 * p2.y + l3 * p3.y;
+ }
+
+ public static float getDistance(float x1, float z1, float x2, float z2) {
+ float x = (x2-x1) * (x2-x1);
+ float z = (z2-z1) * (z2-z1);
+ float answer = (float) Math.sqrt(x + z);
+ System.out.println(answer);
+ return answer;
+ }
+
+ public static float getDistance(Vector3f vec1, Vector3f vec2) {
+ float x = (vec1.x-vec2.x) * (vec1.x-vec2.x);
+ float z = (vec1.z-vec2.z) * (vec1.z-vec2.z);
+ float answer = (float) Math.sqrt(x + z);
+ return answer;
+ }
+
+
+
+}