función XMXDECN4::XMXDECN4(float,float,float,float) (directxpackedvector.h)
Inicializa una nueva instancia de a partir de XMXDECN4
cuatro argumentos normalizados float
.
Este constructor inicializa una nueva instancia de XMXDECN4 a partir de cuatro argumentos normalizados float
.
void XMXDECN4(
float _x,
float _y,
float _z,
float _w
) noexcept;
_x
Valor normalizado para la coordenada x del vector.
Este argumento debe estar comprendido entre -1.0 y 1.0; durante la creación de instancias de una instancia de XMXDECN4
, se multiplica por 511.0f
y, a continuación, se almacena como el miembro x de la estructura.
_y
Valor normalizado para la coordenada y del vector , y de la nueva instancia de XMXDECN4
.
Este argumento debe estar comprendido entre -1.0 y 1.0; durante la creación de instancias de una instancia de XMXDECN4
, se multiplica por 511.0f
y, a continuación, se almacena como el miembro y de la estructura.
_z
Valor normalizado para la coordenada z del vector, la z de la nueva instancia de XMXDECN4
.
Este argumento debe estar comprendido entre -1.0 y 1.0; durante la creación de instancias de una instancia de XMXDECN4
, se multiplica por 511.0f
y, a continuación, se almacena como el miembro z de la estructura.
_w
Valor normalizado para la coordenada w del vector, w de la nueva instancia de XMXDECN4
.
Este argumento debe estar comprendido entre -1.0 y 1.0; durante la creación de instancias de una instancia de XMCOLOR, se multiplica por 3.0f
y, a continuación, se almacena como miembro w de la estructura.
None
Todos los valores de entrada, _x, _y, _z y _w se fijan en un intervalo de -1,0 a 1,0.
El pseudocódigo siguiente muestra el funcionamiento de este constructor, que aprovecha las union
ventajas de los cuatro componentes del XMDECN4
vector con una instancia de uint32_t
en la definición de la estructura:
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));
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | directxpackedvector.h |
Referencia