função XMDECN4::XMDECN4(float,float,float,float) (directxpackedvector.h)
Inicializa uma nova instância de de XMDECN4
quatro argumentos normalizados float
.
Esse construtor inicializa uma nova instância de XMDECN4 de quatro argumentos normalizados float
.
Sintaxe
void XMDECN4(
float _x,
float _y,
float _z,
float _w
) noexcept;
Parâmetros
_x
Um valor normalizado para a coordenada x do vetor.
Esse argumento deve estar entre -1.0 e 1.0; durante a instanciação de uma instância do XMDECN4
, ela é multiplicada por 511.0f
e, em seguida, armazenada como o membro x da estrutura.
_y
Um valor normalizado para a coordenada y do vetor, o y da nova instância de XMDECN4
.
Esse argumento deve estar entre -1.0 e 1.0; durante a instanciação de uma instância do XMDECN4
, ela é multiplicada por 511.0f
e, em seguida, armazenada como o membro y da estrutura.
_z
Um valor normalizado para a coordenada z do vetor, o z da nova instância de XMDECN4
.
Esse argumento deve estar entre -1.0 e 1.0; durante a instanciação de uma instância do XMDECN4
, ela é multiplicada por 511.0f
e armazenada como o membro z da estrutura.
_w
Um valor normalizado para a coordenada w do vetor, o w da nova instância de XMDECN4
.
Esse argumento deve estar entre -1.0 e 1.0.
Retornar valor
Nenhum
Comentários
Todos os valores de entrada, _x,_y, _z e _w são fixados em um intervalo de -1,0 a 1,0.
O pseudocódigo a XMDECN4
seguir demonstra a operação desse construtor, que aproveita o union
dos quatro componentes do vetor com uma instância de uint32_t
na definição da estrutura:
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, -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));
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | directxpackedvector.h |
Confira também
Referência