Condividi tramite


Funzione XMStoreFloat4x3 (directxmath.h)

Archivia una XMMATRIX in un XMFLOAT4X3.

Sintassi

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

Parametri

[out] pDestination

Indirizzo in cui archiviare i dati.

[in] M

Matrice contenente i dati da archiviare.

Valore restituito

No.

Osservazioni

XMFLOAT4X3 è un modulo matrice principale di riga. Questa funzione non può essere usata per scrivere dati principali della colonna perché presuppone che l'ultima colonna sia 0 0 0 1.

Questa funzione accetta una matrice e scrive i componenti su dodici valori a virgola mobile a precisione singola all'indirizzo specificato. Il componente più significativo del primo vettore di riga viene scritto nei primi quattro byte dell'indirizzo, seguito dal secondo componente più significativo della prima riga, seguito dal terzo componente più significativo della prima riga. I tre componenti più significativi della seconda riga vengono quindi scritti in modo simile alla memoria a partire dal byte 12, seguito dalla terza riga alla memoria a partire dal byte 24 e infine dalla quarta riga alla memoria a partire dal byte 36.

Il codice pseudocodice seguente illustra l'operazione della funzione.

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

Requisiti della piattaforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK per Windows 8. Supportato per app desktop Win32, app di Windows Store e Windows Phone 8 app.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione directxmath.h

Vedi anche

Funzioni dell'archivio vettoriali di libreria DirectXMath