Boost QVM defines a set of generic functions and operator overloads for working with **q**uaternions, **v**ectors and **m**atrices of static size with the emphasis on 2, 3 and 4-dimensional operations needed in graphics, video games and simulation applications. While it provides its own quaternion, matrix and vector types, it is designed to work primarily with user-defined types through user specializations of the *q_traits*, *v_traits* and *m_traits* templates.

Note that Boost QVM is not part of Boost. Please post questions and suggestions on the Boost Developers Mailing List.

Click here to download the source code and this documentation.

- Motivation
- Tutorial
- Reference
- Type traits
- Quaternion, vector and matrix types
- Accessing quaternion elements
- Accessing vector elements
- Accessing vector elements by swizzling
- Accessing matrix elements
- Quaternion operations
- Vector operations
- Matrix operations
- Quaternion-vector operations
- Vector-matrix operations
- Matrix-to-matrix view proxies
- Vector-to-matrix view proxies
- Matrix-to-vector view proxies
- Generic programming utilities
- Exception types
- Macros and configuration
- Namespace boost::qvm::sfinae

- Synopsis
- Code generator
- Known quirks and issues
- Rationale for overloading operator%
- Questions and answers
- Indexes