glam v0.15.0 Release Notes

Release Date: 2021-05-14 // almost 3 years ago
  • ๐Ÿ’ฅ Breaking changes

    • โœ‚ Removed PartialOrd and Ord trait implementations for all glam types.
    • Removed deprecated zero(), one(), unit_x(), unit_y(), unit_z(), unit_w(), identity() and Mat2::scale() methods.
    • โœ‚ Remove problematic Quat From trait conversions which would allow creating a non-uniform quaternion without necessarily realising, including from Vec4, (x, y, z, w) and [f32; 4].

    โž• Added

    • โž• Added EulerRot enum for specifying Euler rotation order and Quat::from_euler(), Mat3::from_euler() and Mat4::from_euler() which support specifying a rotation order and angles of rotation.
    • โž• Added Quat::to_euler() method for extracting Euler angles.
    • โž• Added Quat::from_vec4() which is an explicit method for creating a quaternion from a 4D vector. The method does not normalize the resulting quaternion.
    • โž• Added Mat3A type which uses Vec3A columns. It is 16 byte aligned and contains internal padding but it generally faster than Mat3 for most operations if SIMD is available.
    • โž• Added 3D affine transform types Affine3A and DAffine3. These are more efficient than using Mat4 and DMat4 respectively when working with 3D affine transforms.
    • โž• Added 2D affine transform types Affine2 and DAffine2. These are more efficient than using Mat3 and DMat3 respectively when working with 2D affine transforms.
    • โž• Added Quat::from_affine3() to create a quaternion from an affine transform rotation.
    • โž• Added explicit to_array() method to vector types to better match the matrix methods.

    ๐Ÿ”„ Changed

    • Deprecated Quat::from_rotation_ypr(), Mat3::from_rotation_ypr() and Mat4::from_rotation_ypr() in favor of new from_euler() methods.
    • Deprecated Quat::from_rotation_mat3() and Quat::from_rotation_mat4() in favor of new from_mat3 and from_mat4 methods.
    • ๐Ÿ—„ Deprecated TransformSRT and TransformRT which are under the transform-types feature. These will be moved to a separate experimental crate.
    • โšก๏ธ Updated spirv-std dependency version to 0.4.0-alpha7.