6 KiB
6 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
forBasis2
,Basis3
, andAffineMatrix3
Changed
- Improves the
fmt::Debug
impls forVector
,Matrix
,Point
,Decomposed
,Quaternion
andAngle
to make them easier to derive, and have clearer formatting.
v0.7.0 - 2015-12-23
Added
- Add missing by-ref and by-val permutations of
Vector
,Matrix
,Point
,Quaternion
andAngle
operators. - Ease lifetime constraints by removing
'static
from some scalar type parameters. - Weaken type constraints on
perspective
function to take anInto<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
, andAngle
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
forProjectionFov::fovy
, rather than arbitraryAngle
s. This simplifies the signature ofPerspectiveFov
fromPerspectiveFov<S, A>
toPerspectiveFov<S>
. - The following trait constraints were removed from
Angle
:Debug
,ScalarConv
,Into<Rad<S>>
,Into<Deg<S>>
. Angle
no longer requiresOne
, and the implementations have been removed fromDeg
andRad
. 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 anAngle^2
(not supported by the current api).- Make remainder operators on
Angle
s 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 theArray::{min, max}
methods that were introduced in 0.5.0. - Removed
ToComponents
,ToComponents2
, andToComponents3
. If you were relying onToComponents::decompose
, you can produce the same effect by accessing the fields onDecomposed
directly. To create the scale vector, use:Vector::from_value(transform.scale)
. - Removed
CompositeTransform
,CompositeTransform2
, andCompositeTransform3
. - Remove
Vector::one
. Vectors don't really have a multiplicative identity. If you really want aone
vector, you can do something like:Vector::from_value(1.0)
. - Remove operator methods from
Vector
,Matrix
,Point
, andAngle
traits in favor of operator overloading. - Remove
*_self
methods fromVector
,Matrix
,Point
, andAngle
. The operator methods can be used via the unstable assignment operators. - Remove
#[derive(Hash)]
fromDeg
andRad
. This could never really be used these types, because they expect to be given aBaseFloat
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
toSquareMatrix::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 intoMatrix
andSquareMatrix
, opening the door for non-square matrices in the future. - Make many trait type parameters associated types.
- Move element-wise methods from
Vector
andPoint
onto theArray1
trait, and rename it toArray
. - 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 theMatrix
trait.