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

Swizzling

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

Swizzling

Усиление QVM позволяет получать доступ к векторным элементам путем распухания , обнажая векторные представления различных размеров и/или представления с переупорядоченными элементами. Приведенный ниже пример вращает v вокруг оси X и сохраняет полученный вектор обратно в v, но с заменой элементов X и Y:

float3 v = {0,0,7};
YXZ(v) = rotx_mat<3>(3.14159f) * v;

Специальный случай свиста дает представление о векторном объекте следующего измерения, добавляя 0 или 1 в качестве последнего компонента. Предполагая, что float3 является 3D-векторным типом, а float4 является 4D-векторным типом, следующие утверждения действительны:

float3 v = {0,0,7};
float4 point = XYZ1(v); //{0,0,7,1}
float4 vector = XYZ0(v); //{0,0,7,0}

Он также действителен для передачи векторных элементов более одного раза:

float3 v = {0,0,7};
float4 v1 = ZZZZ(v); //{7,7,7,7}

Boost QVM определяет все перестановки X, Y, Z, W для 1D, 2D, 3D и 4D swizzling, плюс каждое измерение определяет варианты с 0 или 1, используемые в любом положении (если 0 или 1 появляются в первом положении, имя функции swizzling начинается с подчеркивания, например _1XY).

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:08:25/0.025185108184814/1