Partager via


fonction XMXDECN4 ::XMXDECN4(float,float,float) (directxpackedvector.h)

Initialise une nouvelle instance de à partir de XMXDECN4 quatre arguments normalisésfloat.

Ce constructeur initialise une nouvelle instance de XMXDECN4 à partir de quatre arguments normalisésfloat.

Note Ce constructeur n’est disponible que sous C++.
 

Syntaxe

void XMXDECN4(
  float _x,
  float _y,
  float _z,
  float _w
) noexcept;

Paramètres

_x

Valeur normalisée pour la coordonnée x du vecteur.

Cet argument doit être compris entre -1.0 et 1.0 ; lors de l’instanciation d’un instance de XMXDECN4, il est multiplié par511.0f, puis stocké en tant que membre x de la structure.

_y

Valeur normalisée pour la coordonnée y du vecteur, y du nouveau instance de XMXDECN4.

Cet argument doit être compris entre -1.0 et 1.0 ; pendant l’instanciation d’un instance de XMXDECN4, il est multiplié par 511.0f puis stocké en tant que membre y de la structure.

_z

Valeur normalisée pour la coordonnée z du vecteur, z du nouveau instance de XMXDECN4.

Cet argument doit être compris entre -1.0 et 1.0 ; pendant l’instanciation d’un instance de XMXDECN4, il est multiplié par511.0f, puis stocké en tant que membre z de la structure.

_w

Valeur normalisée pour la coordonnée w du vecteur, le w de la nouvelle instance de XMXDECN4.

Cet argument doit être compris entre -1.0 et 1.0 ; lors de l’instanciation d’un instance de XMCOLOR, il est multiplié par3.0f, puis stocké en tant que membre w de la structure.

Valeur de retour

None

Remarques

Toutes les valeurs d’entrée, _x, _y, _z et _w sont limitées à une plage comprise entre -1,0 et 1,0.

Le pseudocode suivant illustre l’opération de ce constructeur, qui tire parti des union quatre composants du XMDECN4 vecteur avec un instance de uint32_t dans la définition de la structure :


    	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));
	

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête directxpackedvector.h

Voir aussi

Référence

XMXDECN4

constructeurs XMXDECN4