The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.
| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| joml-1.10.6-sources.jar | 2024-06-22 | 736.1 kB | |
| joml-1.10.6.jar | 2024-06-22 | 778.7 kB | |
| 1.10.6 source code.tar.gz | 2024-06-22 | 773.0 kB | |
| 1.10.6 source code.zip | 2024-06-22 | 898.8 kB | |
| README.md | 2024-06-22 | 9.2 kB | |
| Totals: 5 Items | 3.2 MB | 0 | |
Breaking Changes - Matrix/Quaternion/Vector.get(Buffer) - respect Buffer ByteOrder (https://github.com/JOML-CI/JOML/commit/ff3a0f54ad1823337136670f17cabb4692fcd4f9)
The above is potentially a breaking change for you whenever you use JOML without disabling sun.misc.Unsafe support to get a matrix's, quaternion's or vector's components into a NIO Buffer whose byte order is not nativeOrder() (the default for NIO Buffers created via methods in the JDK's class library is always BIG_ENDIAN). If you use other means, like LWJGL, to create NIO Buffers, there will be no problem.
Additions - Many more Kotlin extension classes/methods - Thanks to @Peanuuutz (https://github.com/JOML-CI/JOML/pull/323) (https://github.com/JOML-CI/JOML/commit/03cbd5e3bb23771b3c1f76630b7a4a847da94444) - Math.toDegrees(float) overload - (https://github.com/JOML-CI/JOML/commit/9f67120a6c4f47408b33ae8298ad33c60eee78e7) - Vector3.xy(Vector2) and Vector4.xy(Vector2) - (https://github.com/JOML-CI/JOML/commit/75d60fdad423942d14b2a5c1ca214f51df79bc7a) - Vector2/3/4L and Vector2/3/4Lc - (https://github.com/JOML-CI/JOML/issues/340) (https://github.com/JOML-CI/JOML/commit/de9186c00b3e10b6d99425669fdc26d6bba7bab1, https://github.com/JOML-CI/JOML/commit/5799e75558c34d2c562da260dd213f52871acaa9) - Vector4d/f multiply methods not taking dest argument - (https://github.com/JOML-CI/JOML/commit/18d6790e761f3747f9f25695356c2c5ac0fbf385) - Vector4f.set(Vector3dc) - (https://github.com/JOML-CI/JOML/commit/158c926320bf2cfbc5777fecea13d2d45547ce24) - Matrix.set(array)/.set(array, offset) - (https://github.com/JOML-CI/JOML/issues/321) (https://github.com/JOML-CI/JOML/commit/39476574772cbc97c130bae473ccebcbd8db5371) - Matrix3/4/4x3.getEulerAnglesYXZ() - (https://github.com/JOML-CI/JOML/issues/325) (https://github.com/JOML-CI/JOML/commit/d93db9b0035a48d70ed442f5785a5a6a23e4652a) - Matrix.getTransposedToAddress()/.setTransposedFromAddress(long) - (https://github.com/JOML-CI/JOML/issues/329) (https://github.com/JOML-CI/JOML/commit/4072dff14b1b632023bb194236e686981957829b) - Make all org.joml.Math constants public - (https://github.com/JOML-CI/JOML/pull/331) (https://github.com/JOML-CI/JOML/commit/4b55bac7c187a0b3372a000478c9bf1d103ad7db) - Vector4f.set(Vector3dc) - (https://github.com/JOML-CI/JOML/commit/158c926320bf2cfbc5777fecea13d2d45547ce24) - Vector4.xyz(Vector3), Vector4.xy(Vector2), Vector3.xy(Vector2) - (https://github.com/JOML-CI/JOML/issues/336) (https://github.com/JOML-CI/JOML/commit/d475251596b3204f7c616c71e7ca68b1e89dd3d0, https://github.com/JOML-CI/JOML/commit/75d60fdad423942d14b2a5c1ca214f51df79bc7a, https://github.com/JOML-CI/JOML/commit/bbc988e65c96829caa49926a6932948c84dfa49e) - Vector2d(Vector3) constructors and Vector2d.set(Vector3) setters - (https://github.com/JOML-CI/JOML/commit/7dc71568d6f59861366bc1a6ccecd878cdf8b472)
Fixes
- Matrix3f.get3x4(Buffer) - (https://github.com/JOML-CI/JOML/issues/345) (https://github.com/JOML-CI/JOML/commit/933eb412bb19ce7b6f98062e1c94449c50d92dca)
- Matrix/Quaternion/Vector.get(Buffer) - respect Buffer ByteOrder (https://github.com/JOML-CI/JOML/commit/ff3a0f54ad1823337136670f17cabb4692fcd4f9)
- Quaternion.getEulerAnglesZYX() - Thanks to @56738 (https://github.com/JOML-CI/JOML/pull/326) (https://github.com/JOML-CI/JOML/commit/cc58108495af8bde176dad38042655cb04d037aa)
- Resetting matrix properties in Matrix4.set(col, row, v) and setRowColumn() - (https://github.com/JOML-CI/JOML/issues/335) (https://github.com/JOML-CI/JOML/commit/8773210868b66e8e0fdb96284bd2124df3d77d59)
- Matrix4.rotateXYZ/YXZ/ZYX() erroneously using dest matrix properties when this was affine - (https://github.com/JOML-CI/JOML/commit/eab54cb6118c3a8c326b9aea3ee4ee47efc46abf)
- Vector4i(Vector3fc, float, int) constructor not setting 'w' component - (https://github.com/JOML-CI/JOML/commit/be7efd4db4e7272754761b4083e4b5987d690e70)
Miscellaneous
- Optimize various things - Thanks to @0x000006 (https://github.com/JOML-CI/JOML/pull/334) (https://github.com/JOML-CI/JOML/commit/b36a5cc3fac2d9d58a3241ad6d6fc21bfdf299e3)
- Change Matrix4f.set3x3(Matrix4f) to Matrix4f.set3x3(Matrix4fc) - Thanks to @NicBOMB (https://github.com/JOML-CI/JOML/pull/344) (https://github.com/JOML-CI/JOML/commit/0f66b420d9e3a27a6308605a0347a6e8f81563d9)
- Fix Quaternion.fromAxisAngleDeg() angle parameter JavaDocs - (https://github.com/JOML-CI/JOML/issues/342) (https://github.com/JOML-CI/JOML/commit/52c7d151bd1fc13bdd5a0ecb9b97e97bbb41af82)
- Refactor mentions of specific vector classes in JavaDocs - (https://github.com/JOML-CI/JOML/commit/422242d4b39479020f47831f0516aa916ed69cc6, https://github.com/JOML-CI/JOML/commit/11734ad6e754d6bffcec2d6369a092737cab74f1)
- Optimize Matrix4f.rotateGeneric(Quaternionf) using fma
when -Djoml.useFma is used - (https://github.com/JOML-CI/JOML/commit/f830b0c9c3d7817106751eac1387cd9cd5dff72d)
- Avoid copying object fields in Matrix/Vector.set(Matrix/Vector other) if this == other - (https://github.com/JOML-CI/JOML/commit/ebe6de96dfe2696ddfb4e10c7d029977093a5fcb)
- Implement all equals() methods consistently - (https://github.com/JOML-CI/JOML/commit/da75414e894c6772e73b6e2e8eca97259ab9dde1)
- Document better which matrix properties imply which other properties - (https://github.com/JOML-CI/JOML/commit/afb0e79078ae7f52eae38fea0eaf050b59083902)
- Optimize Vector matrix multiply methods taking into account matrix properties - (https://github.com/JOML-CI/JOML/issues/337) (https://github.com/JOML-CI/JOML/commit/22d6fc18a60d4d5adab4eddf04db58e6bb9cf2a9, https://github.com/JOML-CI/JOML/commit/534d472e7e3fdaf71f052e68fcc74fb4ad371af5, https://github.com/JOML-CI/JOML/commit/d3912cf1bc46d0f08b430ba53716f5ce1a0aa2ee, https://github.com/JOML-CI/JOML/commit/72c45e42b68dc520b9746269666f115c29089836)
- Mention order of M * v multiplication in all Vector.mul(Matrix) methods - (https://github.com/JOML-CI/JOML/commit/5b4d4c2f7830eaee8834fad20e1bf24ea1965c50)
- Mark Matrix4/4x3.assume()/properties() with @MagicConstant - (https://github.com/JOML-CI/JOML/commit/b2d3c672fa5cd17d5dc61f8eaf9eb34411aeef88)
- Optimize Math.fastAtan2() - thanks to @0x000006 (https://github.com/JOML-CI/JOML/pull/333) (https://github.com/JOML-CI/JOML/commit/9672295b8f7ccfa916734e6419247cc60c04520c)
- Rearrange Matrix4f fields - (https://github.com/JOML-CI/JOML/commit/ec0a6ed0915af7dbe06415c91b6628b83acad073)
- Migrate from Maven to Gradle for build/release - (https://github.com/JOML-CI/JOML/commit/cf78987aed712fe5cc5ac66271f39895be5d7662, https://github.com/JOML-CI/JOML/commit/f477e8a073052549358575b89d990b47c766eff0, https://github.com/JOML-CI/JOML/commit/b75674db1aff7746195d07f1e781c7e5975a3d7f, https://github.com/JOML-CI/JOML/commit/3539950b98a2ceaa0c96683884c3a60714f348d2)
- Make Kotlin extensions usable/compilable - (https://github.com/JOML-CI/JOML/issues/320) (https://github.com/JOML-CI/JOML/commit/1288c5d68240822cdf222cedb7c8cf179a0e1c4a)
- Switch to GitHub Actions (from Travis) for publishing - (https://github.com/JOML-CI/JOML/commit/4dcb53f6a754e705799db7572594de5f401f970c)
- Add experimental support for accelerated Matrix4f.mul(Matrix4f), Matrix4f.invert(), Matrix4f.transpose(), Matrix4f.set(Matrix4f), Quaternionf.mul(Quaternionf) via JVMCI - (https://github.com/JOML-CI/JOML/commit/4fe6e9db0a1a09de11229dca65cfba16cc74bffe, https://github.com/JOML-CI/JOML/commit/8e477944b52e61f98395c15d4544964e70b2d391, https://github.com/JOML-CI/JOML/commit/e903fadf1b201a4b4c3deff976ffbb777992c22a, https://github.com/JOML-CI/JOML/commit/a8c326e543a5350226339b5932874d426625743d, https://github.com/JOML-CI/JOML/commit/bbcd6980796f02ee3a20e766c375065538e62bbb, https://github.com/JOML-CI/JOML/commit/ebd13a3cd76d08507e1f425accf3b50c7bcea1e6, https://github.com/JOML-CI/JOML/commit/8bcc1b26d768fd8e78b8df32c0f431654f065fe7, https://github.com/JOML-CI/JOML/commit/09be17189482500f1592cf0cfff82ea471d5ab9e, https://github.com/JOML-CI/JOML/commit/4fdf196ae17362078fda2774660862886a1acfef, https://github.com/JOML-CI/JOML/commit/9a172b16babaa109ff183526b0b4c27d2f44e44e)
The above is currently only available in the org.joml:joml-experimental Maven artifact and has a few restrictions:
1. The JVMCI code paths will only be enabled for the x64 architecture
2. The following VM arguments must be passed at runtime to enable JVMCI:
-XX:+UnlockExperimentalVMOptions
-XX:+EnableJVMCI
--enable-preview
--add-modules jdk.internal.vm.ci
--add-exports jdk.internal.vm.ci/jdk.vm.ci.code=ALL-UNNAMED
--add-exports jdk.internal.vm.ci/jdk.vm.ci.code.site=ALL-UNNAMED
--add-exports jdk.internal.vm.ci/jdk.vm.ci.hotspot=ALL-UNNAMED
--add-exports jdk.internal.vm.ci/jdk.vm.ci.meta=ALL-UNNAMED
--add-exports jdk.internal.vm.ci/jdk.vm.ci.runtime=ALL-UNNAMED
--add-exports jdk.internal.vm.ci/jdk.vm.ci.amd64=ALL-UNNAMED
- It will not work when running the JVM with a debugger attached (JVMCI will not be enabled under an attached debugger - but the native methods are still registered in JOML and will then fail/crash at runtime)
However, the performance benefits are quite dramatic. E.g. Matrix4f inversion is almost three times as fast and Matrix4f multiplication almost 4.5 times as fast.