vmmlib - a templatized C++ vector and matrix math library
Its basic functionality includes a vector and a matrix class, with additional functionality for the often-used 3d and 4d vectors and 3x3 and 4x4 matrices.
More advanced features include solvers, frustum computations and frustum culling classes, and spatial data structures. vmmlib also offers support for manipulating 3rd-order and 4th-order tensors, as well as several algorithms for tensor approximation of 3D volume data sets (including Tucker approximation).
It is implemented using C++ templates, making it versatile. Being a header library, it is very easy to integrate into other (your) libraries and programs. There is no need to build and install a library, just include the headers and you’re set.
The BSD license allows the usage both in open source and commercial closed source software. Contributions are welcome, just create a pull request.
It is easy to use, yet powerful, and was written with OpenGL in mind. This means that the vector and matrix classes can be used in OpenGL calls:
vec3f position; // fill glVertex3fv( position ); mat4f modelview; // fill glLoadMatrixf( modelview );
vmmlib was developed and tested on Unix (including Mac OS X, GNU/Linux and *BSD) and Windows.
The library is actively developed, used and maintained: vmmlib was developed at the Visualization and Multimedia Lab at the University of Zurich and is being used in research projects and in the industry. It is currently being maintained by Rafael Ballester; issues can be reported here.
Other projects that use VMMLib:
» Equalizer (parallel rendering)