28 releases (15 breaking)
Uses old Rust 2015
0.31.0 | May 2, 2022 |
---|---|
0.30.1 | Mar 23, 2022 |
0.24.0 | Jan 13, 2021 |
0.23.0 | Nov 23, 2020 |
0.13.0 | Aug 16, 2017 |
#239 in Math
135 downloads per month
Used in 12 crates
(4 directly)
47KB
1K
SLoC
na
na is a wrapper around nalgebra to make it easier and mostly less verbose to work with the most used types in vector math for graphics.
na shortens the most common types Vector*, Point*, Quaternion... to Vec*, Pnt*, Quat... and defaults the generic parameters to f32 so you can write:
struct Pos(Vec3);
It also inlcudes some other functionalities not yet present in nalgebra:
- Fast versions of multiplication of matrices (including matrices with vectors) that can be used by calling:
let m4: Mat4 = ...;
let v4: Vec4 = ...;
let v4_2 = m4.fast_mul(&v4);
-
Fast versions of inversion for matrices
-
GLSL style swizzles:
let xy = v3.xy()
let xz = v3.xz()
....
- Macros to easily create vectors:
let one = vec3!(1.); //sets all components to 1
let composed = vec3!(v2, z); // creates a Vector3 from a Vector2 and a float
...
-
Easy to use traits for the most common types:
- BaseNum (Integers and reals)
- BaseInt
- BaseFloat
- NumVec (Vector of any number type)
- FloatVec
- NumPnt
- FloatPnt
Dependencies
~3MB
~64K SLoC