QVM: Quaternions, Vectors, Matrices
Code Generator
В то время как Boost QVM определяет общие функции, которые работают на матрицах и векторных типах произвольных статических размеров, он также предоставляет генератор кода, который может использоваться для создания совместимых файлов заголовков, которые определяют гораздо более простые специализации этих функций для конкретных размеров. Это полезно при отладке, так как сгенерированный код намного легче читать, чем шаблонные метапрограммы. Это также потенциально более удобно для оптимизатора.
Генератор кода — это утилита командной строки. Его исходный код можно найти в каталогеlibs/qvm/gen. Он использовался для генерации следующих заголовков:
- 2D, 3D и 4D матричные операции:
- 2D, 3D и 4D векторные операции:
- 2D, 3D и 4D векторно-матричные операции:
- 2D, 3D и 4D векторные операции:
Любые такие генерируемые заголовки должны быть включены до того, как будет включен соответствующий общий файл заголовка. Например, если создается заголовокboost/qvm/gen/m5.hppПрежде чем включитьboost/qvm/mat_operations.hpp. Однако общие заголовки (boost/qvm/mat_operations.hpp),boost/qvm/vec_operations.hpp,boost/qvm/vec_mat_operations.hppиboost/qvm/swizzle.hpp) уже включают сгенерированные заголовки из списка выше, поэтому сгенерированные заголовки не нужно включать вручную.
Примечание: заголовки подboost/qvm/genне являются частью публичного интерфейса Boost QVM. Например,boost/qvm/gen/mat_operations2.hppне следует включать непосредственно;#include<boost/qvm/mat_operations2.hpp>вместо этого.