All Versions
46
Latest Version
Avg Release Cycle
61 days
Latest Release
-

Changelog History
Page 1

  • v0.29.1 Changes

    โž• Added

    • The conversion trait From<Vec<T>> and method from_vec_storage for RowDVector. See #975
  • v0.29.0 Changes

    ๐Ÿ’ฅ Breaking changes

    • โšก๏ธ We updated to the version 0.6 of simba. This means that the trait bounds T: na::RealField, na::ComplexField, na::SimdRealField, na:SimdComplexField no imply that T: Copy (they only imply that T: Clone). This may affect generic code.
    • The closure given to apply, zip_apply, zip_zip_apply must now modify the first argument inplace, instead of returning a new value. This makes these methods more versatile, and avoid useless clones when using non-Copy scalar types.
    • The Allocator trait signature has been significantly modified in order to handle uninitialized matrices in a sound way.

    Modified

    • Orthographic3::from_matrix_unchecked is now const fn.
    • Perspective3::from_matrix_unchecked is now const fn.
    • Rotation::from_matrix_unchecked is now const fn.
    • ๐Ÿ‘ฏ The Scalar is now automatically implemented for most 'static + Clone types. Type that implement Clone but not Copy are now much safer to work with thanks to the refactoring of the Allocator system.

    โž• Added

    • The conversion traits form the bytemuck crates are now implemented for the geometric types too.
    • Added operator overloading for Transform * UnitComplex, UnitComplex * Transform, Transform ร—= UnitComplex, Transform รท= UnitComplex.
    • โž• Added Reflection::bias() to retrieve the bias of the reflection.
    • โž• Added Reflection1..Reflection6 aliases for 1D to 6D reflections.
    • โž• Added implementation of From and Into for converting between nalgebra types and types from glam 0.16 and glam 0.17. These can be enabled by enabling the convert-glam016, and/or convert-glam017 cargo features.
  • v0.28.0 Changes

    โž• Added

    • Implement Hash for Transform.
    • Implement Borrow and BorrowMut for contiguous slices.

    Modified

    • The OPoint<T, D> type has been added. It takes the dimension number as a type-level integer (e.g. Const<3>) instead of a const-generic. The type Point<T, const D: usize> is now an alias for OPoint. This changes doesn't affect any of the existing code using Point. However, it will allow the use OPoint in a generic context where the dimension cannot be easily expressed as a const-generic (because of the current limitation of const-generics in Rust).
    • โš  Several clippy warnings were fixed. This results in some method signature changes (e.g. taking self instead of &self) but this should not have any practical infulances on existing codebase.
    • The Point::new constructors are no longer const-fn. This is due to some limitations in const-fn not allowing custom trait-bounds. Use the point! macro instead to build points in const environments.
    • Dynamic::new and Unit::new_unchecked are now const-fn.
    • Methods returning Result<(), ()> now return bool instead.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a potential unsoundess issue when converting a mutable slice to a &mut[T].
  • v0.27.1 Changes

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug in the conversion from glam::Vec2 or glam::DVec2 to Isometry2.
  • v0.27.0 Changes

    ๐Ÿšš This removes the convert-glam and convert-glam-unchecked optional features. Instead, this adds the convert-glam013, convert-glam014, and convert-glam015 optional features for conversions targeting the versions 0.13, 0.14, and 0.15 of glam.

    โž• Added

    • โž• Add macros matrix!, dmatrix!, vector!, dvector!, point! for constructing matrices/vectors/points in a more convenient way. See #886 and #899.
    • โž• Add CooMatrix::reserve to nalgebra-sparse.
    • โž• Add basic support for serialization using rkyv. Can be enabled with the features rkyv-serialize or rkyv-serialize-no-std.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a potential unsoundness issue after deserializing an invalid DVector using serde.
  • v0.26.2 Changes

    โž• Added

    • ๐ŸŒ Conversion from an array [T; D] to an isometry Isometry<T, _, D> (as a translation).
    • ๐ŸŒ Conversion from a static vector SVector<T; D> to an isometry Isometry<T, _, D> (as a translation).
    • ๐ŸŒ Conversion from a point Point<T; D> to an isometry Isometry<T, _, D> (as a translation).
    • ๐ŸŒ Conversion of an array [T; D] from/to a translation Translation<T, D>.
    • ๐ŸŒ Conversion of a point Point<T, D> to a translation Translation<T, D>.
    • Conversion of the tuple of glam types (Vec3, Quat) from/to an Isometry2 or Isometry3.
    • ๐ŸŒ Conversion of a glam type Vec2/3/4 from/to a Translation2/3/4.
  • v0.26.1 Changes

    ๐Ÿ›  Fix a regression introduced in 0.26.0 preventing DVector from being serialized with serde.

  • v0.26.0 Changes

    ๐Ÿš€ This releases integrates min-const-generics to nalgebra. See our blog post ๐Ÿš€ for details about this release.

    โž• Added

    • โž• Add type aliases for unit vector, e.g., UnitVector3.
    • โž• Add a pow and pow_mut function to square matrices.
    • โž• Add Cholesky::determinant to compute the determinant of a matrix decomposed with Cholesky.
    • โž• Add the serde-serialize-no-std feature to enable serialization of static matrices/vectors with serde, but without requiring std.

    Modified

    • 0๏ธโƒฃ The serde crate isn't enabled by default now. Enable the serde-serialize or the serde-serialize-no-std features instead.
    • The Const<const D: usize> type has been introduced to represent dimensions known at compile-time. This replaces the type-level integers from typenum as well as the U1, U2, ..., U127 types from nalgebra. These U1, U2, ..., U127 are now just aliases for Const<D>, e.g., type U2 = Const<2>.
    • The ArrayStorage now uses a standard array [[T; R]; C] instead of a GenericArray.
    • Many trait bounds were changed to accommodate const-generics. Most of these changes should be transparent wrt. non-generic code.
    • ๐Ÿ—„ The MatrixMN alias has been deprecated. Use OMatrix or SMatrix instead.
    • ๐Ÿ—„ The MatrixN<T, D> alias has been deprecated. Use OMatrix<T, D, D> or SMatrix instead.
    • ๐Ÿ—„ The VectorN<T, D> alias has been deprecated. Use OVector or SVector instead.
    • ๐ŸŒ The Point, Translation, Isometry, Similarity, and Transformation types now take an integer for their dimension (instead of a type-level integer).
    • The type parameter order of Isometry, Similarity, Transformation changed to put the integer dimensions in the last position (this is required by the compiler).
    • ๐ŸŒ The ::new constructors of translations, points, matrices, and vectors of dimensions <= 6 are now const fn, making them usable to define constant globals. The Quaternion::new constructor is also a const fn now.
  • v0.25.4 Changes

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix a compilation error when only the serde-serialize feature is enabled.
  • v0.25.3 Changes

    โž• Added

    • The Vector::simd_cap_magnitude method to cap the magnitude of the a vector with SIMD components.