Поделиться через


Функция XMVectorSwizzle (directxmath.h)

Вращается вектор.

Синтаксис

XMVECTOR XM_CALLCONV XMVectorSwizzle(
  [in] FXMVECTOR V,
  [in] uint32_t  E0,
  [in] uint32_t  E1,
  [in] uint32_t  E2,
  [in] uint32_t  E3
) noexcept;

Параметры

[in] V

Вектор для поворота.

[in] E0

Индекс, описывающий, какой компонент V следует поместить в x-компонент свернутого вектора. При значении 0 выбирается x-компонент, 1 — компонент y, 2 — z-компонент, а 3 — w-компонент.

[in] E1

Индекс, описывающий, какой компонент V следует поместить в компонент y в вращаемого вектора. При значении 0 выбирается x-компонент, 1 — компонент y, 2 — z-компонент, а 3 — w-компонент.

[in] E2

Индекс, описывающий, какой компонент V следует поместить в z-компонент в вращаемого вектора. При значении 0 выбирается x-компонент, 1 — компонент y, 2 — z-компонент, а 3 — w-компонент.

[in] E3

Индекс, описывающий, какой компонент V следует разместить в w-компоненте свернутого вектора. При значении 0 выбирается x-компонент, 1 — компонент y, 2 — z-компонент, а 3 — w-компонент.

Возвращаемое значение

Возвращает свернутый XMVECTOR.

Комментарии

В следующем коде показано, как можно использовать эту функцию.

XMVECTOR v = XMVectorSet( 10.0f, 20.0f, 30.0f, 40.0f );
XMVECTOR result = XMVectorSwizzle(v, 3, 3, 0, 2 );

Свернутый вектор (результат) будет иметь значение <40.0f, 40.0f, 10.0f, 30.0f>.

XM_SWIZZLE_X, XM_SWIZZLE_Y, XM_SWIZZLE_Zи XM_SWIZZLE_W являются константами, которые оцениваются как 0, 1, 2 и 3 соответственно для использования с XMVectorSwizzle. Это идентично XM_PERMUTE_0X, XM_PERMUTE_0Y, XM_PERMUTE_0Zи XM_PERMUTE_0W.

Для постоянных индексов (E0, E1, E2, E3) гораздо эффективнее использовать шаблонную форму XMVectorSwizzle:


template<uint32_t SwizzleX, uint32_t SwizzleY, uint32_t SwizzleZ, uint32_t SwizzleW>
    XMVECTOR XMVectorSwizzle(FXMVECTOR V)

Example: XMVectorSwizzle< 3, 3, 0, 2>(v);
   

Требования к платформе

Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и Windows Phone 8 приложений.

Требования

   
Целевая платформа Windows
Header directxmath.h (включая DirectXMath.h)

См. также раздел

Векторные функции на уровне компонентов

XMVectorPermute