All Versions
51
Latest Version
Avg Release Cycle
26 days
Latest Release
521 days ago

Changelog History
Page 3

  • v0.15.0 Changes

    May 14, 2021

    💥 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.
  • v0.14.0 Changes

    April 09, 2021

    💥 Breaking changes

    • 👍 Minimum Supported Version of Rust bumped to 1.45.0 for the spirv-std dependency.

    ➕ Added

    • ➕ Added AXES[] constants to all vector types. These are arrays containing the unit vector for each axis.
    • Added quaternion from_scaled_axis and to_scaled_axis methods.

    🔄 Changed

    • ⚡️ Updated dependency versions of bytemuck to 1.5, rand to 0.8, rand_xoshiro to 0.6 and spirv-std to 0.4.0-alpha4.
  • v0.13.1 Changes

    March 24, 2021

    ➕ Added

    • ➕ Added vector clamp() functions.
    • ➕ Added matrix column and row accessor methods, col() and row().
    • ➕ Added SPIR-V module and dependency on spirv-std for the SPIR-V target.
    • ➕ Added matrix truncation from 4x4 to 3x3 and 3x3 to 2x2 via From impls.

    🔄 Changed

    • 📚 Documentation corrections and improvements.
  • v0.13.0 Changes

    March 04, 2021

    💥 Breaking Changes

    • The behavior of the 4x4 matrix method transform_point3() was changed to not perform the perspective divide. This is an optimization for use with affine transforms where perspective correction is not required. The project_point3() method was added for transforming points by perspective projections.
    • The 3x3 matrix from_scale() method was changed to create a affine transform containing a 2-dimensional non-uniform scale to be consistent with the 4x4 matrix version. The from_diagonal() method can be used to create a 3x3 scale matrix.
    • The 3x3 matrix methods transform_point2_as_vec3a, transform_vector2_as_vec3a and mul_vec3_as_vec3a were unintentionally pub and are no longer publicly accessible.

    ➕ Added

    • ➕ Added Vec2::X, Vec4::W etc constants as a shorter versions of unit_x() and friends.
    • ➕ Added ONE constants for vectors.
    • ➕ Added IDENTITY constants for Mat2, Mat3, Mat4 and Quat.
    • ➕ Added ZERO constant for vectors and matrices.
    • Added clamp_length(), clamp_length_max(), and clamp_length_min methods for f32 and f64 vector types.
    • Added try_normalize() and normalize_or_zero() for all real vector types.
    • ➕ Added from_diagonal() methods to all matrix types for creating diagonal matrices from a vector.
    • Added angle_between(), from_rotation_arc() and from_rotation_arc_colinear() to quaternion types.
    • ➕ Added quaternion inverse() which assumes the quaternion is already normalized and returns the conjugate.
    • 🌐 Added from_translation() and from_angle() methods to 3x3 matrix types.
    • ➕ Added project_point3() method to 4x4 matrix types. This method is for transforming 3D vectors by perspective projection transforms.
    • ➕ Added Eq and Hash impls for integer vector types.

    🔄 Changed

    • 🗄 Deprecated ::unit_x/y/z(), ::zero(), ::one(), ::identity() functions in favor of constants.
  • v0.12.0 Changes

    January 15, 2021

    💥 Breaking Changes

    • Vec2Mask, Vec3Mask and Vec4Mask have been replaced by BVec2, BVec3, BVec3A, BVec4 and BVec4A. These types are used by some vector methods and are not typically referenced directly.

    ➕ Added

    • ➕ Added f64 primitive type support
      • vectors: DVec2, DVec3 and DVec4
      • square matrices: DMat2, DMat3 and DMat4
      • a quaternion type: DQuat
    • ➕ Added i32 primitive type support
      • vectors: IVec2, IVec3 and IVec4
    • ➕ Added u32 primitive type support
      • vectors: UVec2, UVec3 and UVec4
    • ➕ Added bool primitive type support
      • vectors: BVec2, BVec3 and BVec4

    ✂ Removed

    • 🏗 build.rs has been removed.
  • v0.11.3 Changes

    December 29, 2020

    🔄 Changed

    • Made Vec3 repr(simd) for spirv targets.

    ➕ Added

    • ➕ Added From<(Vec2, f32)> for Vec3 and From<(Vec3, f32) for Vec4.
  • v0.11.2 Changes

    December 04, 2020

    🔄 Changed

    • 🛠 Compilation fixes for Rust 1.36.0.
  • v0.11.1 Changes

    December 03, 2020

    ➕ Added

    • ➕ Added support for the Rust GPU SPIR-V target architecture.
  • v0.11.0 Changes

    November 26, 2020

    ➕ Added

    • ➕ Added is_finite method to all types which returns true if, and only if, all contained elements are finite.
    • ➕ Added exp and powf methods for all vector types.

    🔄 Changed

    • The is_nan method now returns a bool to match the new is_finite method and to be consistent with the same methods on the f32 and f64 primitive types.
    • Renamed is_nan which returns a vector mask to is_nan_mask.
    • 🏗 Don't use the cfg definitions added by build.rs for defining structs as rust-analyzer is not aware of them.

    ✂ Removed

    • ✂ Removed deprecated accessor methods.
  • v0.10.2 Changes

    November 17, 2020

    🔄 Changed

    • Deprecated element accessor members .x(), .x_mut(), .set_x(), etc. on vector and quaternion types.
    • Deprecated column accessor members .x_axis(), .x_axis_mut(), .set_x_axis(), etc. on matrix types.