Releases: JOML-CI/JOML
Releases · JOML-CI/JOML
1.9.24
1.9.23
Additions
- Quaternion/Matrix.isFinite() - (#211) (537c93d)
- Math.safeAsin() to handle floating-point inaccuracies - (#217) (9aecd42)
- Rectangle.scale() - Thanks to @mkmax (#216) (7615884)
Fixes
- Quaternion.rotationTo/rotateTo to handle non-unit vectors - Thanks to @ieperen3039 (#212) (27d49aa)
- NaN with Quaternion.getEulerAnglesXYZ() - Thanks to @haubna (#217) (9aecd42)
- Matrix4.transpose() - (since 1.9.21) Thanks to @PS-Soundwave and @pollend - (#218) (#219, #220) (93946dc, 3a4a59d)
- AxisAngle4.toString() - Thanks to @lukehutch (#214) (e7edc62)
Miscellaneous
1.9.22
1.9.21
Breaking Changes
- Do not expose Matrix._mNN() methods - (51efdc9) also see this SO thread
- Rename Quaterniond.conjugate(Quaterniondc) to conjugateBy - (4ceab96)
Additions
- Vector2/3/4i constructors/setters/getters with explicit rounding - (ba58982)
- Rectanglei - (b308604)
- Vector.absolute() - (2064cdd)
- Quaternion.transformUnit() - (c3ee15e)
- Vector3/4.mulAdd() - (9b5becd)
- Matrix3.[get/set]RowColumn() and Matrix4.get/set() - (d4f6026)
- Vector(array) constructor and Vector.set(array) - (5677dd9)
- Float overloads for Math methods - (8f092f2)
- Matrix4/3.setTransposed(Matrix4/3) - (bc9807e)
- Vector4d.set(double, double, double) - (3cc9787)
- Matrix4x3d constructor/set taking Matrix3f - (7bafb14)
- Vector3i.div() and Vector4i.div(float)/(int, Vector4i) overloads - (577ffa8)
- Matrix4.mul(<matrix-elements>) - (6041e66)
- Matrix4.mul3x3(<matrix-elements>) - (5ac4335)
Fixes
- Change Rectangle.contains() parameter to Vector2[f/d]c (b308604)
- Quaternion.transform() to work with non-unit quaternions - Thanks to @lukehutch for reporting (#204) (c3ee15e)
- Change parameter of Quaternionf.difference() to Quaternionfc - (85f94f5)
Miscellaneous
- Use Math.fma() in more methods- (9b44d8f, 9f37491, ca57286, 18c1677, 62c3ad6, 123a92d, 52238d8)
- Use time measurement to check whether FMA3 is likely supported - (b936748)
- Optimize Matrix4.mul(Matrix4x3) - (ea7a14e)
- Remove org.joml.internal package - (6e1a889)
- Optimize methods for lower bytecode size - (5936677, c44349f, 9fb1900, 232943d)
- Inline vector methods to reduce call tree depth for better JIT inlining - (c8ce068, 50359e9, 05a7473)
- Improve determining of matrix properties - (2932d80, 47847aa, b2e4537)
1.9.20
Additions
- Matrix4x3f.invert(Matrix4f) and Matrix4x3f.withLookAtUp() - (07dbd0f)
- Matrix4f/Matrix3f/Matrix4x3f.get3x4(Buffer) - (9c84c6e)
- FrustumIntersectionf.distanceToPlane() - (6fd65c3)
- Plane.distance(point) - (749a03f)
- AABB.transform(Matrix4fc) - (57e7629)
- Quaternion.conjugateBy(Quaternion) - (#199) (7682fcb)
- Math.atan2() approximation - (06e4c28)
- Mixed-precision constructors/setters/getters/methods to Vector2/3/4, AxisAngle, Quaternion - (#201) (f7a38ad, 5765414, 58b814c, d590aa0, e09c57f)
- Vector3/4.mulProject() with w component but writing into Vector3 - (bfca22d)
- Matrix4.perspectiveInvOrigin() - (7f8b424)
Fixes
- Quaternion.rotateTo/rotationTo() - Thanks to @lukehutch for reporting (#202) (fb179ad)
- Quaternion.angle() - Thanks to @lukehutch for reporting (#203) (db8da40)
Miscellaneous
1.9.19
1.9.18
Additions
- Rectangle.intersects()/contains() - (da1c49b)
- Vector4fc.normalize3() - (dfb1a31)
- Vector3d/4d.get(FloatBuffer)/getf(ByteBuffer) - (aa91a18)
- Implement Externalizable for all data classes - (#192) (f2b47e8)
- AABB.translate() - (1b0d673)
- Circle.translate() - (31c0dc8)
- Rectangle.translate() - (77e6ffd)
- Sphere.translate() - (9212394)
- Three-point Plane constructor - (6be66ec)
- Sphere constructor with Vector3 center - (381db17)
- AABBd(Vector3fc) constructor - (161eeb2)
- AABB.getMin/getMax(component) - (e7af424)
Fixes
- Handle far plane at infinity in Matrix4.unproject[Inv]Ray() - (fa3f490, 219e2d4)
- State initialization of Random.Xorshiro128 - Thanks to @timbaker for reporting (#191) (750a1a9)
- Vector4.mulProject() - (b405e64)
Miscellaneous
- Add 'jdk.unsupported' as optional Java module dependency - (#188) (e6428b6)
- Add Buffer bounds checks when -Djoml.debug - (#189) (3e91920)
- Determine matrix properties after deserialization - (629a5be)
- Optimize Matrix4/4x3.rotate/rotation(angle, axis) - (6938c09)
- Remove special angle-case handling in Matrix4x3.rotate/rotation[XYZ]() - (06697be)
- Improve performance of Matrix4/4x3.rotateXYZ/YXZ/ZYX() - (a1a1dbc)
- Remove special angle-case handling in Matrix3f.rotate[XYZ]() - (6a57d8e)
- Detect if base axis in Vector3/4.rotateAxis(angle, axis) - (ed9c2e0)
- Improve performance of Matrix4/4x3.rotate[XYZ]() - (9da6ca9)
- Improve base-axis rotations in Matrix4/4x3.rotateTranslation() - (d6a6296)
- Improve Matrix4/4x3.rotate(XYZ|YXZ|ZYX)() - (8d5f287)
- JavaDocs - (5b94410, 7a8c857, 4defb7b, 275d7a4)
1.9.17
1.9.16
1.9.15
Additions
- Matrix2f/Matrix2fc/Matrix2d/Matrix2dc - Thanks to @Earthcomputer (#180, #182) (1160856)
- Matrix4.withLookAtUp() - (b71612c, 10abbb2)
- Vector3.angleSigned() - (01bb4eb)
Fixes
- Matrix4x3d.get4x4(), Matrix4d.get(), Matrix4x3d.get/getTransposed(), Matrix3x2d.get4x4(), Matrix3x2d.get3x3(), Matrix3x2d.get() - Thanks to @Earthcomputer (#181, #183) (564712e)