The `Unit` wrapper type ensures that elements of the underlying type has a unit norm. For example, `Unit<Vector3>` designates an element of S². In particular `UnitQuaternion<N>` is now a type alias for `Unit<Quaternion<N>>`.
3.9 KiB
Change Log
All notable changes to nalgebra
, starting with the version 0.6.0 will be
documented here.
This project adheres to Semantic Versioning.
[0.9.0] - WIP
Modified
- Renamed:
::from_col_vector
->::from_column_vector
::from_col_iter
->::from_column_iter
.col_slice
->.column_slice
.set_col
->.set_column
::canonical_basis_with_dim
->::canonical_basis_with_dimension
::from_elem
->::from_element
DiagMut
->DiagonalMut
The Norm
trait now uses an associated type instead of a type parameter.
Other similar trait changes are to be expected in the future, e.g., for the
Diagonal
trait.
Methods marked unsafe
for reasons unrelated to memory safety are no
longer unsafe. Instead, their name end with _unchecked
. In particular:
* Rotation3::new_with_matrix
-> Rotation3::new_with_matrix_unchecked
* PerspectiveMatrix3::new_with_matrix
-> PerspectiveMatrix3::new_with_matrix_unchecked
* OrthographicMatrix3::new_with_matrix
-> OrthographicMatrix3::new_with_matrix_unchecked
Added
- A `Unit<T>` type that wraps normalized values. In particular,
`UnitQuaternion<N>` is now replaced by `Unit<Quaternion<N>>`.
- `.ln()`, `.exp()` and `.powf(..)` for quaternions.
- `::from_parts(...)` to build a quaternion from its scalar and vector
parts.
- The `Norm` trait now has a `try_normalize()` that returns `None` if the
norm is too small.
- The `BaseFloat` and `FloatVector` traits now inherit from `ApproxEq` as
well. It is clear that performing computations with floats requires
approximate equality.
[0.8.0]
Modified
- Almost everything (types, methods, and traits) now use full names instead
of abbreviations (e.g.
Vec3
becomesVector3
). Most changes are abvious. Note however that:::sqnorm
becomes::norm_squared
.::sqdist
becomes::distance_squared
.::abs
,::min
, etc. did not change as this is a common name for absolute values on, e.g., the libc.- Dynamically sized structures keep the
D
prefix, e.g.,DMat
becomesDMatrix
.
- All files with abbreviated names have been renamed to their full version,
e.g.,
vec.rs
becomesvector.rs
.
[0.7.0]
Added
- Added implementation of assignement operators (+=, -=, etc.) for everything.
Modified
- Points and vectors are now linked to each other with associated types (on the PointAsVector trait).
[0.6.0]
Announcement: a users forum has been created for nalgebra
, ncollide
, and nphysics
. See
you there!
Added
- Added a dependency to generic-array. Feature-gated:
requires
features="generic_sizes"
. - Added statically sized vectors with user-defined sizes:
VectorN
. Feature-gated: requiresfeatures="generic_sizes"
. - Added similarity transformations (an uniform scale followed by a rotation followed by a
translation):
Similarity2
,Similarity3
.
Removed
- Removed zero-sized elements
Vector0
,Point0
. - Removed 4-dimensional transformations
Rotation4
andIsometry4
(which had an implementation to incomplete to be useful).
Modified
- Vectors are now multipliable with isometries. This will result into a pure rotation (this is how vectors differ from point semantically: they design directions so they are not translatable).
{Isometry3, Rotation3}::look_at
reimplemented and renamed to::look_at_rh
and::look_at_lh
to agree with the computer graphics community (in particular, the GLM library). Use the::look_at_rh
variant to build a view matrix that may be successfully used withPersp
andOrtho
.- The old
{Isometry3, Rotation3}::look_at
implementations are now called::new_observer_frame
. - Rename every
fov
onPersp
tofovy
. - Fixed the perspective and orthographic projection matrices.