funzione XMXDECN4::XMXDECN4(float,float,float,float) (directxpackedvector.h)
Inizializza una nuova istanza di XMXDECN4
da quattro argomenti normalizzati float
.
Questo costruttore inizializza una nuova istanza di XMXDECN4 da quattro argomenti normalizzati float
.
Sintassi
void XMXDECN4(
float _x,
float _y,
float _z,
float _w
) noexcept;
Parametri
_x
Valore normalizzato per la coordinata x del vettore.
Questo argomento deve essere compreso tra -1.0 e 1.0; durante la creazione di un'istanza di XMXDECN4
, viene moltiplicata per 511.0f
e quindi archiviata come membro x della struttura.
_y
Valore normalizzato per la coordinata y del vettore, l'y della nuova istanza di XMXDECN4
.
Questo argomento deve essere compreso tra -1.0 e 1.0; durante la creazione di un'istanza di XMXDECN4
, viene moltiplicata per 511.0f
e quindi archiviata come membro y della struttura.
_z
Valore normalizzato per la coordinata z del vettore, la z della nuova istanza di XMXDECN4
.
Questo argomento deve essere compreso tra -1.0 e 1.0; durante la creazione di un'istanza di XMXDECN4
, viene moltiplicata per 511.0f
e quindi archiviata come membro z della struttura.
_w
Valore normalizzato per la coordinata w del vettore, la w della nuova istanza di XMXDECN4
.
Questo argomento deve essere compreso tra -1.0 e 1.0; durante la creazione di un'istanza di XMCOLOR, viene moltiplicata per 3.0f
e quindi archiviata come membro w della struttura.
Valore restituito
nessuno
Osservazioni
Tutti i valori di input, _x, _y, _z e _w sono bloccati a un intervallo compreso tra -1,0 e 1,0.
Lo pseudocodice seguente illustra l'operazione di questo costruttore, che sfrutta i union
quattro componenti del XMDECN4
vettore con un'istanza di uint32_t
nella definizione della struttura:
XMDECN4 instance;
_x1=min( max( _x, -1.0 ), 1.0 );
_y1=min( max( _y, -1.0 ), 1.0 );
_z1=min( max( _z, -1.0 ), 1.0 );
_w1=min( max( _w, 0.0 ), 1.0 );
_x1 = round( _x1 * 511.0f);
_y1 = round( _y1 * 511.0f);
_z1 = round( _z1 * 511.0f);
_w1 = round( _w1 * 3.0f);
instance.v = ( (int32_t)_w1 << 30) |
(((int32_t)_z1 & 0x3FF) << 20) |
(((int32_t)_y1 & 0x3FF) << 10) |
(((uint32_t)_x1 & 0x3FF));
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | directxpackedvector.h |
Vedi anche
Riferimento