Compartilhar via


Função XMStoreFloat4x3 (directxmath.h)

Armazena um XMMATRIX em um XMFLOAT4X3.

Sintaxe

void XM_CALLCONV XMStoreFloat4x3(
  [out] XMFLOAT4X3 *pDestination,
  [in]  FXMMATRIX  M
) noexcept;

Parâmetros

[out] pDestination

Endereço no qual armazenar os dados.

[in] M

Matriz que contém os dados a serem armazenados.

Valor retornado

Nenhum.

Comentários

XMFLOAT4X3 é uma forma de matriz de linha principal. Essa função não pode ser usada para gravar dados principais de coluna, pois pressupõe que a última coluna seja 0 0 0 1.

Essa função usa uma matriz e grava os componentes em doze valores de ponto flutuante de precisão única no endereço fornecido. O componente mais significativo do vetor da primeira linha é gravado nos quatro primeiros bytes do endereço, seguido pelo segundo componente mais significativo da primeira linha, seguido pelo terceiro componente mais significativo da primeira linha. Os três componentes mais significativos da segunda linha são então gravados de maneira semelhante à memória começando no byte 12, seguidos pela terceira linha até a memória começando no byte 24 e, por fim, a quarta linha na memória começando no byte 36.

O pseudocódigo a seguir demonstra a operação da função.

pDestination->_11 = M[0].x; // 4 bytes to address (uint8_t*)pDestination
pDestination->_12 = M[0].y; // 4 bytes to address (uint8_t*)pDestination + 4
pDestination->_13 = M[0].z; // 4 bytes to address (uint8_t*)pDestination + 8

pDestination->_21 = M[1].x; // 4 bytes to address (uint8_t*)pDestination + 12
pDestination->_22 = M[1].y; // 4 bytes to address (uint8_t*)pDestination + 16
pDestination->_23 = M[1].z; // 4 bytes to address (uint8_t*)pDestination + 20

pDestination->_31 = M[2].x; // 4 bytes to address (uint8_t*)pDestination + 24
pDestination->_32 = M[2].y; // 4 bytes to address (uint8_t*)pDestination + 28
pDestination->_33 = M[2].z; // 4 bytes to address (uint8_t*)pDestination + 32

pDestination->_41 = M[3].x; // 4 bytes to address (uint8_t*)pDestination + 36
pDestination->_42 = M[3].y; // 4 bytes to address (uint8_t*)pDestination + 40
pDestination->_43 = M[3].z; // 4 bytes to address (uint8_t*)pDestination + 44

Requisitos da 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

Confira também

Funções do Repositório de Vetores da Biblioteca DirectXMath