All Versions
35
Latest Version
Avg Release Cycle
59 days
Latest Release
1898 days ago

Changelog History
Page 2

  • v0.10.0 Changes

    May 11, 2016

    โž• Added

    • A MetricSpace trait for types that have a distance between elements.
    • 0๏ธโƒฃ EuclideanSpace::{midpoint, centroid} functions with default implementations.
    • Vector1 and Point1 structs.
    • ๐Ÿ‘ Serde support behind the eders feature flag.
    • An ApproxEq implementation for Decomposed.

    ๐Ÿ”„ Changed

    • ๐Ÿ‘€ Depend on the num-traits crate rather than num, seeing as we only use the traits in num. num_traits has also been re-exported so that you can more easily use these in your project.
    • ๐Ÿ‘‰ Use an Euler type for euler angle conversions.
    • Constrain InnerSpace by MetricSpace.
    • Constrain Rotation by One
    • Implement Transform and Transform3 for Matrix4.
    • Implement Transform, Transform2, and Transform3 for Matrix4.
    • ๐Ÿ›  Fix Euler-Quaternion and Quaternion-Euler conversions. The axes are now correct, and the angles are applied in x-y-z order. The conversion now matches the conversion from axis angle.
    • ๐Ÿ›  Fix Euler-{Matrix3, Matrix4} conversions.
  • v0.9.1 Changes

    April 20, 2016

    ๐Ÿ”„ Changed

    • ๐Ÿ›  Fix angle assignment operators so that they actually mutate self.
  • v0.9.0 Changes

    April 19, 2016

    ๐Ÿ”„ Changed

    • Assignment operators implementations have been stabilised, to coincide with their stabilisation in Rust 1.8.
    • ๐Ÿ“‡ Renames Vector trait to VectorSpace.
    • ๐Ÿ“‡ Renames EuclideanVector to InnerSpace.
    • ๐Ÿ“‡ Renames Point to EuclideanSpace, and Point::Vector to EuclideanSpace::Diff.
    • Quaternions now implement VectorSpace and InnerSpace for the functions they share.
    • The Matrix trait is now constraint by VectorSpace, with Matrix::Element removed in favor of VectorSpace::Scalar.
  • v0.8.0 Changes

    April 06, 2016

    โž• Added

    • Implements fmt::Debug for Basis2, Basis3, and AffineMatrix3
    • A prelude module for easy importing of common traits.
    • Constrained conversion functions for assisting in situations where type inference is difficult.
    • An ElementWise trait for non-mathematical element-wise operations.
    • 0๏ธโƒฃ A default implementation for EuclideanVector::angle.

    ๐Ÿ”„ Changed

    • ๐Ÿ‘Œ Improves the fmt::Debug impls for Vector, Matrix, Point, Decomposed, Quaternion and Angle to make them easier to derive, and have clearer formatting.
    • Marks vectors, points, matrices, and angles as #[repr(C, packed)].
    • ๐Ÿ“‡ Renames the Vector::{length, length2} functions to Vector::{magnitude, magnitude2}.
    • ๐Ÿšš Move Angle::new to be directly implemented on the Rad and Deg types.
    • ๐Ÿšš Move Vector::dot to EuclideanVector trait.
    • ๐Ÿšš Move Vector::from_value to Array trait.

    โœ‚ Removed

    • ๐Ÿšš The non-mathematical operator trait implementations have been removed from the Vector trait, in favor of the ElementWise trait.
    • Angle::equiv.
    • โœ‚ Remove neg_self method on vectors and matrices.
  • v0.7.0 Changes

    December 23, 2015

    โž• Added

    • โž• Add missing by-ref and by-val permutations of Vector, Matrix, Point, Quaternion and Angle operators.
    • Ease lifetime constraints by removing 'static from some scalar type parameters.
    • Weaken type constraints on perspective function to take an Into<Rad<S>>.
    • โž• Add Angle::new for constructing angles from a unitless scalar.
    • ๐Ÿ— Implement assignment operators for nightly builds, enabled by the "unstable" feature.

    ๐Ÿ”„ Changed

    • Vector, Matrix, Point, and Angle are now constrained to require specific operators to be overloaded. This means that generic code can now use operators, instead of the operator methods.
    • Take a Rad for ProjectionFov::fovy, rather than arbitrary Angles. This simplifies the signature of PerspectiveFov from PerspectiveFov<S, A> to PerspectiveFov<S>.
    • ๐Ÿšš The following trait constraints were removed from Angle: Debug, ScalarConv, Into<Rad<S>>, Into<Deg<S>>.
    • ๐Ÿšš Angle no longer requires One, and the implementations have been removed from Deg and Rad. This is because angles do not close over multiplication, and therefore cannot have a multiplicative identity. If we were truly accurate, Angle * Angle would return an Angle^2 (not supported by the current api).
    • ๐Ÿ‘‰ Make remainder operators on Angles make sense from the perspective of dimensional analysis.
    • ๐Ÿšš Moved free trigonometric functions onto Angle.

    โœ‚ Removed

    • โœ‚ Remove redundant Point::{min, max} methods - these are now covered by the Array::{min, max} methods that were introduced in 0.5.0.
    • โœ‚ Removed ToComponents, ToComponents2, and ToComponents3. If you were relying on ToComponents::decompose, you can produce the same effect by accessing the fields on Decomposed directly. To create the scale vector, use: Vector::from_value(transform.scale).
    • โœ‚ Removed CompositeTransform, CompositeTransform2, and CompositeTransform3.
    • โœ‚ Remove Vector::one. Vectors don't really have a multiplicative identity. If you really want a one vector, you can do something like: Vector::from_value(1.0).
    • โœ‚ Remove operator methods from Vector, Matrix, Point, and Angle traits in favor of operator overloading.
    • โœ‚ Remove *_self methods from Vector, Matrix, Point, and Angle. The operator methods can be used via the unstable assignment operators.
    • โœ‚ Remove #[derive(Hash)] from Deg and Rad. This could never really be used these types, because they expect to be given a BaseFloat under normal circumstances.
  • v0.6.0 Changes

    December 12, 2015

    โž• Added

    • This CHANGELOG for keeping track of notable changes.
    • Matrix4::{from_scale, from_nonuniform_scale} for easily constructing homogeneous scale matrices.

    ๐Ÿ”„ Changed

    • ๐Ÿ“‡ Renamed SquareMatrix::one to SquareMatrix::identity. identity is easier to search for, and the more common name for the multiplicative identity for matrices.
    • Matrix impls have now been constrained to S: BaseFloat.
  • v0.5.0 Changes

    November 20, 2015

    ๐Ÿ”„ Changed

    • Take many point and vector parameters by value.
    • Take point and vector operator overloads by value.
    • Divide Matrix trait into Matrix and SquareMatrix, opening the door for non-square matrices in the future.
    • ๐Ÿ‘‰ Make many trait type parameters associated types.
    • ๐Ÿšš Move element-wise methods from Vector and Point onto the Array1 trait, and rename it to Array.
    • ๐Ÿ‘‰ Make pointer access methods on Array match the naming scheme of those in the standard library.

    โœ‚ Removed

    • โœ‚ Removed collision types: Ray, Plane, Frustum, Aabb2, Aabb3 Obb2, Obb3 Sphere, Cylinder. These can now be found at csherratt/collision-rs.
    • โœ‚ Remove Array2 trait, moving methods onto the Matrix trait.
  • v0.4.0

    October 25, 2015
  • v0.3.1

    September 20, 2015
  • v0.3.0

    September 20, 2015