7.5 KiB
7.5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.8.7 - 2020-04-28
Added
- Added
Quat::slerp- note that this uses asinapproximation. - Added
angle_betweenmethod forVec2andVec3. - Implemented
Debug,Display,PartialEq,Eq,PartialOrd,Ord,Hash, andAsReftraits forVec2Mask,Vec3MaskandVec4Mask. - Added conversion functions from
Vec2Mask,Vec3MaskandVec4Maskto an array of[u32]. - Added
build.rsto simplify conditional feature compilation.
Changed
- Removed
cfg-ifdependency. - Increased test coverage.
0.8.6 - 2020-02-18
Added
- Added the
packed-vec3feature flag to disable using SIMD types forVec3andMat3types. This avoids wasting some space due to 16 byte alignment at the cost of some performance. - Added
x_mut,y_mut,z_mut,w_mutwhere appropriate toVec2,Vec3andVec4. - Added implementation of
core::ops::Indexandcore::ops::IndexMutforVec2,Vec3andVec4.
Changed
- Merged SSE2 and scalar
Vec3andVec4implementations into single files using thecfg-ifcrate.
0.8.5 - 2020-01-02
Added
- Added projection functions
Mat4::perspective_lh,Mat4::perspective_infinite_lh,Mat4::perspective_infinite_reverse_lh,Mat4::orthgraphic_lhandMat4::orthographic_rh. - Added
round,ceilandfloormethods toVec2,Vec3andVec4.
0.8.4 - 2019-12-17
Added
- Added
Mat4::to_scale_rotation_translationfor extracting scale, rotation and translation from a 4x4 homogeneous transformation matrix. - Added
cargo-denyGitHub Action.
Changed
- Renamed
Quat::newtoQuat::from_xyzw.
0.8.3 - 2019-11-27
Added
- Added
Mat4::orthographic_rh_gl.
Changed
- Renamed
Mat4::perspective_glu_rhtoMat4::perspective_rh_gl. - SSE2 optimizations for
Mat2::determinant,Mat2::inverse,Mat2::transpose,Mat3::transpose,Quat::conjugate,Quat::lerp,Quat::mul_vec3,Quat::mul_quatandQuat::from_rotation_ypr. - Disabled optimizations to
Mat4::transform_point3andMat4::transform_vector3as they are probably incorrect and need investigating. - Added missing
#[repr(C)]toMat2,Mat3andMat4. - Benchmarks now store output of functions to better estimate the cost of a function call.
Removed
- Removed deprecated functions
Mat2::new,Mat3::newandMat4::new.
0.8.2 - 2019-11-06
Changed
glam_assert!is no longer enabled by default in debug builds, it can be enabled in any configuration using theglam-assertfeature or in debug builds only using thedebug-glam-assertfeature.
Removed
glam_assert!'s checkinglerpis bounded between 0.0 and 1.0 and that matrix scales are non-zero have been removed.
0.8.1 - 2019-11-03
Added
- Added
Displaytrait implementations forMat2,Mat3andMat4.
Changed
- Disabled
glam's SSE2sin_cosimplementation - it became less precise for large angle values. - Reduced the default epsilon used by the
is_normalized!macro fromstd::f32::EPSILONto1e-6.
0.8.0 - 2019-10-14
Removed
- Removed the
approxcrate dependency. Eachglamtype has anabs_diff_eqmethod added which is used by unit tests for approximate floating point comparisons. - Removed the
Angletype. All angles are nowf32and are expected to be in radians. - Removed the deprecated
Vec2b,Vec3bandVec4btypes and themaskmethods onVec2Mask,Vec3MaskandVec4Mask.
Changed
- The
randcrate dependency has been removed from default features. This was required for benchmarking but a simple random number generator has been added to the benchessupportmodule instead. - The
Fromtrait implementation converting between 1D and 2Df32arrays and matrix types have been removed. It was ambiguous how array data would map to matrix columns so these have been replaced with explicit methodsfrom_cols_arrayandfrom_cols_array_2d. - Matrix
newmethods have been renamed tofrom_colsto be consistent with the other methods that create matrices from data. - Renamed
Mat4::perspective_glutoMat4::perspective_glu_rh.
0.7.2 - 2019-09-22
Fixed
- Fixed incorrect projection matrix methods
Mat4::look_at_lhandMat4::look_at_rh.
Added
- Added support for building infinite projection matrices, including both
standard and reverse depth
Mat4::perspective_infinite_rhandMat4::perspective_infinite_rh. - Added
Vec2Mask::new,Vec3Mask::newandVec4Mask::newmethods. - Implemented
std::opsBitAnd,BitAndAssign,BitOr,BitOrAssignandNottraits forVec2Mask,Vec3MaskandVec4Mask. - Added method documentation for
Vec4andVec4Masktypes. - Added missing
serdeimplementations forMat2,Mat3andMat4. - Updated
randandcriterionversions.
0.7.1 - 2019-07-08
Fixed
- The SSE2 implementation of
Vec4dotwas missing a shuffle, meaning thedot,length,length_squared,length_reciprocalandnormalizemethods were sometimes incorrect.
Added
- Added the
glam_assertmacro which behaves like Rust'sdebug_assertbut can be enabled separately todebug_assert. This is used to perform asserts on correctness. - Added
is_normalizedmethod toVec2,Vec3andVec4.
Changed
- Replaced usage of
std::mem::uninitializedwithstd::mem::MaybeUninit. This change requires stable Rust 1.36. - Renamed
Vec2btoVec2Mask,Vec3btoVec3MaskandVec4btoVec4Mask. Old names are aliased to the new name and deprecated. - Deprecate
VecNMaskmaskmethod, use newbitmaskmethod instead - Made fallback version of
VecNMasktypes the same size and alignment as the SIMD versions. - Added
Defaultsupport toVecNMasktypes, will add more common traits in the future. - Added
#[inline]tomat2,mat3andmat4functions.
0.7.0 - 2019-06-28
Added
- Added
Mat2into[f32; 4],Mat3into[f32; 9]andMat4into[f32; 16].
Changed
- Removed
impl Mul<&Vec2> for Mat2andimpl Mul<&Vec3> for Vec3as these don't exist for any other types.
0.6.1 - 2019-06-22
Changed
Mat2now uses aVec4internally which gives it some performance improvements when SSE2 is available.
0.6.0 - 2019-06-13
Changed
- Switched from row vectors to column vectors
- Vectors are now on the right of multiplications with matrices and quaternions.