Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost QVM

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

QVM: Quaternions, Vectors, Matrices

Boost QVM - это универсальная библиотека для работы с quaternions, vectors и matrices статического размера с акцентом на 2, 3 и 4-мерные операции, необходимые в графике, видеоиграх и приложениях моделирования.

Introduction

В графических и имитационных приложениях существует потребность в библиотеке, которая позволяет эффективно выполнять 2D и 3D преобразования. C++ позволяет определять векторные и матричные типы и перегружать различные операторы для реализации стандартных алгебраических операций. Поскольку это относительно простой процесс, существует множество таких библиотек, каждая из которых имеет свои собственные типы и перегрузки операторов. Такие библиотеки обычно являются частью системы более высокого уровня, такой как графический движок или API для 3D-моделирования. В результате программистам обычно приходится интегрировать и переводить между несколькими различными типами кватерниона, вектора и матрицы, которые поставляются с различными API, которые они используют.

С другой стороны, соображения производительности часто приводят к тому, что типы матриц и векторов соединяются с конкретной платформой или со временем приобретают различные #ifdefs, необходимые для оптимизации с помощью функций компилятора, специфичного для платформы, которые контролируют физический формат или макет своих элементов. Однако такая оптимизация может мешать простоте использования и переносимости; например, на некоторых платформах, требующих 16-байтного выравнивания для типов матриц, они несовместимы со стандартными контейнерами.

Boost QVM решает обе эти проблемы, отделяя стандартные алгебраические операции от типов, на которых они работают.

Key design features of Boost QVM:

  • Акцент на 2, 3 и 4-мерных операциях (включаякватернионы)и нулевые накладные расходыСвифт) по мере необходимости в графических и имитационных приложениях.
  • Нулевой накладнойвид прокси, которые могут быть использованы для доступа к объекту с кватернионной, векторной или матричной семантикой через ссылку только для чтения или изменяемую ссылку другого типа. Например,col(m)связываетС— столбец матрицымкак изменчивый векторный тип без накладных расходов временного.
  • Интеграция многих пользовательских или 3-х сторонних типов кватерниона, вектора или матрицы в когерентную систему безопасности типов. Это позволяет пользователю создавать алгебраические выражения, используя объекты различных типов, которые в противном случае были бы несовместимы.
  • Когда пользователям необходимо реализовать оптимизацию для конкретной платформы или даже проекта в данной подсистеме, Boost QVM упрощает определение новых типов, которые автоматически приобретают полный набор алгебраических операций, чтобы они могли легко взаимодействовать с остальной частью программы. При этом пользователь может определить ограниченное количество перегрузок для новых типов по мере необходимости реализации конкретных оптимизаций.

Contents

  1. Учебник
  2. Ссылка
    1. Типовые черты
    2. Типы кватерниона, вектора и матрицы
    3. Доступ к элементам кватерниона
    4. Доступ к векторным элементам
    5. Доступ к векторным элементам путем шипения
    6. Доступ к элементам матрицы
    7. Кватернионные операции
    8. Векторные операции
    9. Матричные операции
    10. Кватернион-векторные операции
    11. Векторно-матричные операции
    12. Матрица-матрицавид прокси
    13. Вектор-матрицавид прокси
    14. Матрица-векторвид прокси
    15. Утилиты общего программирования
    16. Типы исключений
    17. Макрос и конфигурация
    18. Увеличение пространства имен::qvm::sfinae
  3. Синопсис
  4. Генератор кода
  5. Известные причуды и проблемы
  6. Вопросы и ответы
  7. Индексы

Download

QVM является частью Boost. Пожалуйста, смотрите субмодуль git по адресу https://github.com/boostorg/qvm.

Support

Для поддержки, пожалуйста, используйте список рассылки Boost Developers .

Статья Boost QVM раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 16:58:59/0.028914928436279/1