cgmath/CHANGELOG.md
Brendan Zabarauskas 0de8942748 Merge pull request #311 from bjz/rename-vector-length
Rename Vector::length to Vector::magnitude
2016-03-28 13:47:50 +11:00

6.5 KiB

Change Log

All notable changes to this project will be documented in this file, following the format defined at keepachangelog.com. This project adheres to Semantic Versioning.

Unreleased

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.

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}.

Removed

  • The non-mathematical operator trait implementations have been removed from the Vector trait, in favor of the ElementWise trait.

v0.7.0 - 2015-12-23

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 - 2015-12-12

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 - 2015-11-20

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 - 2015-10-25

v0.3.1 - 2015-09-20

v0.3.0 - 2015-09-20

v0.2.0 - 2015-05-11

v0.1.6 - 2015-05-10

v0.1.5 - 2015-04-25

v0.1.4 - 2015-04-24

v0.1.3 - 2015-04-06

v0.1.2 - 2015-04-01

v0.1.1 - 2015-03-25

v0.1.0 - 2015-03-15

v0.0.8 - 2015-03-09

v0.0.7 - 2015-03-01

v0.0.6 - 2015-02-21

v0.0.5 - 2015-02-16

v0.0.4 - 2015-02-11

v0.0.3 - 2015-02-08

v0.0.1 - 2014-06-24