# Changelog ## Unreleased ## 0.9.2 - Add `num_traits::identities` support behind a `num-traits` feature flag - Fix inverse for similarities - Fix missing `mut` in `Mat4::as_mut_array` result ## 0.9.1 - Fix `from_euler_angles` on `Mat4` - Update documentation on matrix rotation constructors - Update some documentation and improve implementation on `as_array` methods on various types ## 0.9.0 - Add methods to scale `Rotor3` - Implement `Neg` for all `IVec` types - Relax bound in `map` and `apply` from `Fn` to `FnMut` - Make matrix serialization and deserialization implementations match - Update `wide` to `0.7.x` ## 0.8.1 - Implement Serialize and Deserialize for all `UVec`,`IVec`, `DVec`, `DMat` types (under `serde`, `int` and `f64` feature flags) - Implement conversions between integer and float vectors. - Add `#[must_use]` attributes on `.normalized` methods to help prevent silent logic bugs when `.normalize()` would have been more appropriate. - Build docs.rs docs with all features. ## 0.8.0 - Update `wide` to `0.6.x` - Add `Rotor3::into_angle_plane()` - Add `Rotor3::into_quaternion_array` and `Rotor3::from_quaternion_array` - Implement Serialize and Deserialize for `Isometry2` and `Isometry3` (under `serde` feature flag) - Added `const` to `new` functions for integer vectors. - Add `Mat4::truncate()` - Add `Mul` and `Add` for isometries and similarities ## 0.7.5 - Add `Mat4::extract_translation`, `Mat4::extract_rotation` and `Mat4::into_isometry`. - Add missing `PartialEq` implementations for all matrices, transformations, vectors, bivectors and rotors, including SIMD and `f64` variants - Fix `Rotor2::rotate_vec` and corresponding derivation. ## 0.7.4 - Add optional bytemuck support ## 0.7.3 - Fix integer types not compiling properly. ## 0.7.2 - Implement Serialize and Deserialize for bivectors and rotors (under `serde` feature flag) ## 0.7.1 - Fix typo in `Mat3::inverse` implementation which made it transpose instead ## 0.7.0 - Add Mat3 into Rotor3 conversion for rotation matrices - Remove heavy reliance on `mul_add` due to negligible performance benefit and in many cases performance detriment. - Slightly optimize Vector `normalize`. - `Rotor2::from_angle_plane()` now takes plane and angle as separate arguments. - Add `MatN::adjugate()`. - `Mat3::from_nonuniform_scale_homogeneous()` now takes a `Vec2` instead of a `Vec3`. ## 0.6.1 - Add scalar multiplication and componentwise addition for `MatN` ## 0.6 - Significantly improve performance of Rotors and transform types (Isometry, Similarity) - Add `Rotor3::rotate_vecs()` for improved performance on rotating multiple vecs with the same rotor - Add support for f64/double precision floats under `f64` feature. Naming convention is `D[TypeName]` for the f64 versions. - Rename `W[TypeName]` to `[TypeName]x4`, allowing room for `[TypeName]x8`. - Add support for 256 bit AVX vectors. - Add support for `mint` for scalar types - Add `wgpu`-specfic notes to `projection` module (adds `_wgpu` to some function names) - Add spherical linear interpolation and better docs around interpolation - Rename `[WideType]::merge()` to `[WideType]::blend()` - Add `Into for Vec2xN` implementations - Fix some doc comments not appearing properly on Vec and Mat types. - Make most initializers `const` - Various performance improvements, especially for Rotor-transform-vector and some matrix operations - Add `MatN::determinant()` - Add `Mat2::inverse()`