▼Core | The central classes of the library |
Triangulation | Polygon triangulation |
▼Math | Simple math operations |
Scalar | Simple scalar operations |
▼LinAlg | |
Swizzles | |
Vector Algebra | |
Quaternions | |
Quaternion Rotations | |
Vec | linalg::vec<T,M> defines a fixed-length vector containing exactly M elements of type T |
Mat | linalg::mat<T,M,N> defines a fixed-size matrix containing exactly M rows and N columns of type T , in column-major order |
Identity | Define a type which will convert to the multiplicative identity of any square matrix |
Fold | Produce a scalar by applying f(A,B) -> A to adjacent pairs of elements from a vec/mat in left-to-right/column-major order (matching the associativity of arithmetic and logical operators) |
Apply | Apply(f,...) applies the provided function in an elementwise fashion to its arguments, producing an object of the same dimensions |
Comparison_ops | Relational operators are defined to compare the elements of two vectors or matrices lexicographically, in column-major order |
Reductions | Functions for coalescing scalar values |
Unary_ops | Unary operators are defined component-wise for linalg types |
Binary_ops | Binary operators are defined component-wise for linalg types, EXCEPT for operator * , which does standard matrix multiplication, scalar multiplication, and component-wise multiplication for same-size vectors. Use cmul for the matrix Hadamard product |
Unary_STL | Component-wise standard library math functions |
Binary_STL | Component-wise standard library math functions. Either argument can be a vector or a scalar |
Relational | Component-wise relational functions on vectors. Either argument can be a vector or a scalar |
Selection | Component-wise selection functions on vectors. Either argument can be a vector or a scalar |
Mat_algebra | Support for matrix algebra |
Iterators | Vectors and matrices can be used as ranges |
Transforms | Factory functions for 3D spatial transformations |
Array | Provide implicit conversion between linalg::vec<T,M> and std::array<T,M> |
Hash | Provide specializations for std::hash<...> with linalg types |
Structs | Miscellaneous data structures for interfacing with this library |
▼Optional | Optional features that can be enabled through build flags and may require extra dependencies |
Debug | Debugging features |
MeshIO | 3D model file I/O based on Assimp |
Samples | Examples of usage and interesting designs |