All Versions
51
Latest Version
Avg Release Cycle
26 days
Latest Release
521 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v0.15.0 Changes
May 14, 2021💥 Breaking changes
- ✂ Removed
PartialOrd
andOrd
trait implementations for allglam
types. - Removed deprecated
zero()
,one()
,unit_x()
,unit_y()
,unit_z()
,unit_w()
,identity()
andMat2::scale()
methods. - ✂ Remove problematic
Quat
From
trait conversions which would allow creating a non-uniform quaternion without necessarily realising, including fromVec4
,(x, y, z, w)
and[f32; 4]
.
➕ Added
- ➕ Added
EulerRot
enum for specifying Euler rotation order andQuat::from_euler()
,Mat3::from_euler()
andMat4::from_euler()
which support specifying a rotation order and angles of rotation. - ➕ Added
Quat::to_euler()
method for extracting Euler angles. - ➕ Added
Quat::from_vec4()
which is an explicit method for creating a quaternion from a 4D vector. The method does not normalize the resulting quaternion. - ➕ Added
Mat3A
type which usesVec3A
columns. It is 16 byte aligned and contains internal padding but it generally faster thanMat3
for most operations if SIMD is available. - ➕ Added 3D affine transform types
Affine3A
andDAffine3
. These are more efficient than usingMat4
andDMat4
respectively when working with 3D affine transforms. - ➕ Added 2D affine transform types
Affine2
andDAffine2
. These are more efficient than usingMat3
andDMat3
respectively when working with 2D affine transforms. - ➕ Added
Quat::from_affine3()
to create a quaternion from an affine transform rotation. - ➕ Added explicit
to_array()
method to vector types to better match the matrix methods.
🔄 Changed
- Deprecated
Quat::from_rotation_ypr()
,Mat3::from_rotation_ypr()
andMat4::from_rotation_ypr()
in favor of newfrom_euler()
methods. - Deprecated
Quat::from_rotation_mat3()
andQuat::from_rotation_mat4()
in favor of newfrom_mat3
andfrom_mat4
methods. - 🗄 Deprecated
TransformSRT
andTransformRT
which are under thetransform-types
feature. These will be moved to a separate experimental crate. - ⚡️ Updated
spirv-std
dependency version to0.4.0-alpha7
.
- ✂ Removed
-
v0.14.0 Changes
April 09, 2021💥 Breaking changes
- 👍 Minimum Supported Version of Rust bumped to 1.45.0 for the
spirv-std
dependency.
➕ Added
- ➕ Added
AXES[]
constants to all vector types. These are arrays containing the unit vector for each axis. - Added quaternion
from_scaled_axis
andto_scaled_axis
methods.
🔄 Changed
- ⚡️ Updated dependency versions of
bytemuck
to1.5
,rand
to0.8
,rand_xoshiro
to0.6
andspirv-std
to0.4.0-alpha4
.
- 👍 Minimum Supported Version of Rust bumped to 1.45.0 for the
-
v0.13.1 Changes
March 24, 2021➕ Added
- ➕ Added vector
clamp()
functions. - ➕ Added matrix column and row accessor methods,
col()
androw()
. - ➕ Added SPIR-V module and dependency on
spirv-std
for the SPIR-V target. - ➕ Added matrix truncation from 4x4 to 3x3 and 3x3 to 2x2 via
From
impls.
🔄 Changed
- 📚 Documentation corrections and improvements.
- ➕ Added vector
-
v0.13.0 Changes
March 04, 2021💥 Breaking Changes
- The behavior of the 4x4 matrix method
transform_point3()
was changed to not perform the perspective divide. This is an optimization for use with affine transforms where perspective correction is not required. Theproject_point3()
method was added for transforming points by perspective projections. - The 3x3 matrix
from_scale()
method was changed to create a affine transform containing a 2-dimensional non-uniform scale to be consistent with the 4x4 matrix version. Thefrom_diagonal()
method can be used to create a 3x3 scale matrix. - The 3x3 matrix methods
transform_point2_as_vec3a
,transform_vector2_as_vec3a
andmul_vec3_as_vec3a
were unintentionallypub
and are no longer publicly accessible.
➕ Added
- ➕ Added
Vec2::X
,Vec4::W
etc constants as a shorter versions ofunit_x()
and friends. - ➕ Added
ONE
constants for vectors. - ➕ Added
IDENTITY
constants forMat2
,Mat3
,Mat4
andQuat
. - ➕ Added
ZERO
constant for vectors and matrices. - Added
clamp_length()
,clamp_length_max()
, andclamp_length_min
methods forf32
andf64
vector types. - Added
try_normalize()
andnormalize_or_zero()
for all real vector types. - ➕ Added
from_diagonal()
methods to all matrix types for creating diagonal matrices from a vector. - Added
angle_between()
,from_rotation_arc()
andfrom_rotation_arc_colinear()
to quaternion types. - ➕ Added quaternion
inverse()
which assumes the quaternion is already normalized and returns the conjugate. - 🌐 Added
from_translation()
andfrom_angle()
methods to 3x3 matrix types. - ➕ Added
project_point3()
method to 4x4 matrix types. This method is for transforming 3D vectors by perspective projection transforms. - ➕ Added
Eq
andHash
impls for integer vector types.
🔄 Changed
- 🗄 Deprecated
::unit_x/y/z()
,::zero()
,::one()
,::identity()
functions in favor of constants.
- The behavior of the 4x4 matrix method
-
v0.12.0 Changes
January 15, 2021💥 Breaking Changes
Vec2Mask
,Vec3Mask
andVec4Mask
have been replaced byBVec2
,BVec3
,BVec3A
,BVec4
andBVec4A
. These types are used by some vector methods and are not typically referenced directly.
➕ Added
- ➕ Added
f64
primitive type support- vectors:
DVec2
,DVec3
andDVec4
- square matrices:
DMat2
,DMat3
andDMat4
- a quaternion type:
DQuat
- vectors:
- ➕ Added
i32
primitive type support- vectors:
IVec2
,IVec3
andIVec4
- vectors:
- ➕ Added
u32
primitive type support- vectors:
UVec2
,UVec3
andUVec4
- vectors:
- ➕ Added
bool
primitive type support- vectors:
BVec2
,BVec3
andBVec4
- vectors:
✂ Removed
- 🏗
build.rs
has been removed.
-
v0.11.3 Changes
December 29, 2020🔄 Changed
- Made
Vec3
repr(simd)
forspirv
targets.
➕ Added
- ➕ Added
From<(Vec2, f32)>
forVec3
andFrom<(Vec3, f32)
forVec4
.
- Made
-
v0.11.2 Changes
December 04, 2020🔄 Changed
- 🛠 Compilation fixes for Rust 1.36.0.
-
v0.11.1 Changes
December 03, 2020➕ Added
- ➕ Added support for the Rust GPU SPIR-V target architecture.
-
v0.11.0 Changes
November 26, 2020➕ Added
- ➕ Added
is_finite
method to all types which returnstrue
if, and only if, all contained elements are finite. - ➕ Added
exp
andpowf
methods for all vector types.
🔄 Changed
- The
is_nan
method now returns abool
to match the newis_finite
method and to be consistent with the same methods on thef32
andf64
primitive types. - Renamed
is_nan
which returns a vector mask tois_nan_mask
. - 🏗 Don't use the
cfg
definitions added bybuild.rs
for defining structs asrust-analyzer
is not aware of them.
✂ Removed
- ✂ Removed deprecated accessor methods.
- ➕ Added
-
v0.10.2 Changes
November 17, 2020🔄 Changed
- Deprecated element accessor members
.x()
,.x_mut()
,.set_x()
, etc. on vector and quaternion types. - Deprecated column accessor members
.x_axis()
,.x_axis_mut()
,.set_x_axis()
, etc. on matrix types.
- Deprecated element accessor members