funzione XMUDECN4::XMUDECN4(constfloat*) (directxpackedvector.h)

Inizializza una nuova istanza di XMUDECN4 da un argomento della matrice di quattro elementi float .

Questo costruttore inizializza una nuova istanza di XMUDECN4 da un argomento della matrice di quattro elementi float .

Nota Questo costruttore è disponibile solo in C++.

Sintassi

void XMUDECN4(
  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 XMUDECN4.

Valore restituito

nessuno

Osservazioni

Gli elementi della matrice vengono mappati ai componenti vettoriali di una nuova istanza di XMUDECN4 come indicato di seguito:

Componente vettore Elemento Array Intervallo Descrizione
x pArray[0] 0.0, 1.0 Durante l'istanza, pArray[0] viene bloccato tra 0 e 1, moltiplicato per 1023.0f e assegnato a x.
y pArray[1] 0.0, 1.0 Durante l'istanza, pArray[1] viene bloccato tra 0 e 1, moltiplicato per 1023.0f e quindi assegnato a y.
z pArray[2] 0.0, 1.0 Durante l'istanza, pArray[2] viene bloccato tra 0 e 1, moltiplicato per 1023.0f e quindi assegnato a z.
w pArray[3] 0.0, 1.0 Durante l'istanza, pArray[3] viene bloccato tra 0 e 1 e quindi assegnato a w. Questo argomento deve essere compreso tra 0,0 e 1.0; durante l'istanza di un'istanza di XMUDECN4, viene moltiplicata per 3.0f e quindi archiviata come membro w della struttura.
XMUDECN4 instance;
_x1=min( max( pArray[0], 0.0 ), 1.0 );
_y1=min( max( pArray[1], 0.0 ), 1.0 );
_z1=min( max( pArray[2], 0.0 ), 1.0 );
_w1=min( max( pArray[3], 0.0 ), 1.0 );
_x = round( _x *  1023.0f);
_y = round( _y *  1023.0f);
_z = round( _z *  1023.0f);
_w = round( _w *  3.0f);

instance.v =  ( (uint32_t)_w1 << 30) |
                (((uint32_t)_z1 & 0x3FF) << 20) |
                (((uint32_t)_y1 & 0x3FF) << 10) |
                (((uint32_t)_x1 & 0x3FF));

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione directxpackedvector.h

Vedi anche

XMUDECN4

costruttori XMUDECN4