Compartilhar via


Função XMVectorSwizzle (directxmath.h)

Gira um vetor.

Sintaxe

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

Vetor a ser girado.

[in] E0

Índice que descreve qual componente de V colocar no componente x do vetor giratório. Um valor 0 seleciona o componente x, 1 seleciona o componente y, 2 seleciona o componente z e 3 seleciona o componente w.

[in] E1

Índice que descreve qual componente de V colocar no componente y do vetor giratório. Um valor 0 seleciona o componente x, 1 seleciona o componente y, 2 seleciona o componente z e 3 seleciona o componente w.

[in] E2

Índice que descreve qual componente de V colocar no componente z do vetor giratório. Um valor 0 seleciona o componente x, 1 seleciona o componente y, 2 seleciona o componente z e 3 seleciona o componente w.

[in] E3

Índice que descreve qual componente de V colocar no componente w do vetor giratório. Um valor 0 seleciona o componente x, 1 seleciona o componente y, 2 seleciona o componente z e 3 seleciona o componente w.

Valor retornado

Retorna o XMVECTOR girado.

Comentários

O código a seguir demonstra como essa função pode ser usada.

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

O vetor giratório (resultado) será <40.0f, 40.0f, 10.0f, 30.0f>.

XM_SWIZZLE_X, XM_SWIZZLE_Y, XM_SWIZZLE_Ze XM_SWIZZLE_W são constantes que são avaliadas como 0, 1, 2 e 3, respectivamente, para uso com XMVectorSwizzle. Isso é idêntico a XM_PERMUTE_0X, XM_PERMUTE_0Y, XM_PERMUTE_0Ze XM_PERMUTE_0W.

Para o caso de índices constantes (E0, E1, E2, E3), é muito mais eficiente usar a forma de modelo 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 plataforma

Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 com o SDK do Windows para Windows 8. Com suporte para aplicativos da área de trabalho Win32, aplicativos da Windows Store e aplicativos Windows Phone 8.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho directxmath.h (inclua DirectXMath.h)

Confira também

Funções de vetor de componentes

XMVectorPermute