Compartir a través de


Función XMVectorSwizzle (directxmath.h)

Gira un vector.

Sintaxis

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

Parámetros

[in] V

Vector a eswizzle.

[in] E0

Índice que describe qué componente de V se va a colocar en el componente x del vector deswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.

[in] E1

Índice que describe qué componente de V se va a colocar en el componente y del vector deswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.

[in] E2

Índice que describe qué componente de V se va a colocar en el componente z del vector eswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.

[in] E3

Índice que describe qué componente de V se va a colocar en el componente w del vector eswizzled. Un valor de 0 selecciona el componente x, 1 selecciona el componente y, 2 selecciona el componente z y 3 selecciona el componente w.

Valor devuelto

Devuelve el XMVECTOR destornado.

Comentarios

En el código siguiente se muestra cómo se puede usar esta función.

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

El vector swizzled (result) será <40.0f, 40.0f, 10.0f, 30.0f>.

XM_SWIZZLE_X, XM_SWIZZLE_Y, XM_SWIZZLE_Zy XM_SWIZZLE_W son constantes que se evalúan como 0, 1, 2 y 3 respectivamente para su uso con XMVectorSwizzle. Esto es idéntico a XM_PERMUTE_0X, XM_PERMUTE_0Y, XM_PERMUTE_0Zy XM_PERMUTE_0W.

Para el caso de índices constantes (E0, E1, E2, E3), es mucho más eficaz usar la forma de plantilla de 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);
   

Requisitos de la plataforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK para Windows 8. Compatible con aplicaciones de escritorio Win32, aplicaciones de la Tienda Windows y Windows Phone 8 aplicaciones.

Requisitos

   
Plataforma de destino Windows
Encabezado directxmath.h (incluya DirectXMath.h)

Consulte también

Funciones vectoriales con componentes

XMVectorPermute