funzione XMDECN4::XMDECN4(constfloat*) (directxpackedvector.h)
Inizializza una nuova istanza di XMDECN4 da un argomento della matrice di quattro elementi float
.
Questo costruttore inizializza una nuova istanza di XMDECN4 da un argomento della matrice di quattro elementi float
.
Nota Questo costruttore è disponibile solo in C++.
Sintassi
void XMDECN4(
const float *pArray
) noexcept;
Parametri
pArray
Matrice a virgola mobile di quattro elementi contenente i valori usati per inizializzare i quattro componenti di una nuova istanza di XMDECN4.
Valore restituito
nessuno
Osservazioni
Gli elementi della matrice vengono mappati ai componenti vettoriali di una nuova istanza di XMDECN4 come indicato di seguito:
Componente vettore | Elemento Array | Intervallo | Descrizione |
---|---|---|---|
x | pArray[0] | -1.0, 1.0 | Durante l'istanza, pArray[0] viene bloccato tra -1 e 1, moltiplicato per 511.0f e assegnato a x. |
y | pArray[1] | -1.0, 1.0 | Durante l'istanza, pArray[1] viene bloccato tra -1 e 1, moltiplicato per 511.0f e quindi assegnato a y. |
z | pArray[2] | -1.0, 1.0 | Durante l'istanza, pArray[2] viene bloccato tra -1 e 1, moltiplicato per 511.0f e quindi assegnato a z. |
w | pArray[3] | -1.0, 1.0 | Durante l'istanza, pArray[3] è bloccato tra -1 e 1 e quindi assegnato a w. |
XMDECN4 instance;
_x1=min( max( pArray[0], -1.0 ), 1.0 );
_y1=min( max( pArray[1], -1.0 ), 1.0 );
_z1=min( max( pArray[2], -1.0 ), 1.0 );
_w1=min( max( pArray[3], -1.0 ), 1.0 );
_x1 = round( _x1 * 511.0f);
_y1 = round( _y1 * 511.0f);
_z1 = round( _z1 * 511.0f);
instance.v = ( (int32_t)_w1 << 30) |
(((int32_t)_z1 & 0x3FF) << 20) |
(((int32_t)_y1 & 0x3FF) << 10) |
(((int32_t)_x1 & 0x3FF));
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | directxpackedvector.h |