feat(math): add Matrix3x3 and Quaternion for 3D transformations
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 20 Mar 2026 20:51:42 +0000 (22:51 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 20 Mar 2026 20:51:42 +0000 (22:51 +0200)
commitdc54493dfc166c0b47daaff819a8f91748c45f0b
tree9f668550347940233ceae7c995eda4b5f64dfc2a
parent122651d08ae8284fb9d5ed7a7b063f12b88aa698
feat(math): add Matrix3x3 and Quaternion for 3D transformations

- Add Matrix3x3 class for 3D transformations
- Add toMatrix method to Rotation with test
- Use matrix for point transformation
- Cache transformation matrix for performance
- Add Quaternion class for 3D rotations
- Use quaternion internally instead of Euler angles
- Use quaternion-based camera rotation
- Use rotation matrix for movement direction
- Use quaternion for lookAt rotation
src/main/java/eu/svjatoslav/sixth/e3d/gui/Camera.java
src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/InputManager.java
src/main/java/eu/svjatoslav/sixth/e3d/math/Matrix3x3.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/math/Quaternion.java [new file with mode: 0644]
src/main/java/eu/svjatoslav/sixth/e3d/math/Rotation.java
src/main/java/eu/svjatoslav/sixth/e3d/math/Transform.java
src/test/java/eu/svjatoslav/sixth/e3d/math/QuaternionTest.java [new file with mode: 0644]
src/test/java/eu/svjatoslav/sixth/e3d/math/RotationMatrixTest.java [new file with mode: 0644]