función XMXDECN4::XMXDECN4(constfloat*) (directxpackedvector.h)
Inicializa una nueva instancia de XMXDECN4 a partir de un argumento de matriz de cuatro elementos float
.
Este constructor inicializa una nueva instancia de XMXDECN4 a partir de un argumento de matriz de cuatro elementos float
.
void XMXDECN4(
const float *pArray
) noexcept;
pArray
Matriz de punto flotante de cuatro elementos que contiene los valores usados para inicializar los cuatro componentes de una nueva instancia de XMXDECN4.
None
Los elementos de matriz se asignan a los componentes vectoriales de una nueva instancia de XMXDECN4 de la siguiente manera:
Componente de vector | Elemento Array | Intervalo | Descripción |
---|---|---|---|
x | pArray[0] | -0.0, 1.0 | Durante la creación de instancias, pArray[0] se sujeta entre -1 y 1, multiplicado por 511.0f y asignado a x. |
y | pArray[1] | -0.0, 1.0 | Durante la creación de instancias, pArray[1] se sujeta entre -1 y 1, multiplicado por 511,0f y, a continuación, se asigna a y. |
z | pArray[2] | -0.0, 1.0 | Durante la creación de instancias, pArray[2] se sujeta entre -1 y 1, multiplicado por 511.0f y, a continuación, asignado a z. |
w | pArray[3] | 0.0, 1.0 | Durante la creación de instancias, pArray[3] se sujeta entre 0 y 1 y, a continuación, se asigna a w. Este argumento debe estar comprendido entre 0,0 y 1,0; durante la creación de instancias de una instancia de XMXDECN4, se multiplica por 3.0f y, a continuación, se almacena como miembro w de la estructura. |
XMXDECN4 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], 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 = ( (uint32_t)_w1 << 30) |
(((uint32_t)_z1 & 0x3FF) << 20) |
(((uint32_t)_y1 & 0x3FF) << 10) |
(((uint32_t)_x1 & 0x3FF));
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | directxpackedvector.h |
Referencia