Partager via


structure XMFLOAT3SE (directxpackedvector.h)

Décrit un vecteur 3D de trois composants à virgule flottante avec des mantisses de 9 bits, chacun partageant le même exposant 5 bits.

Pour obtenir la liste des fonctionnalités supplémentaires, telles que les constructeurs et les opérateurs disponibles XMFLOAT3SE lors de la programmation en C++, consultez extensions XMFLOAT3SE.

Syntaxe

struct XMFLOAT3SE {
  union {
    struct {
      uint32_t xm : 9;
      uint32_t ym : 9;
      uint32_t zm : 9;
      uint32_t e : 5;
    };
      uint32_t v;
  };
  void         XMFLOAT3SE();
  void         XMFLOAT3SE(
    const XMFLOAT3SE & unnamedParam1
  );
  XMFLOAT3SE & operator=(
    const XMFLOAT3SE & unnamedParam1
  );
  void         XMFLOAT3SE(
    XMFLOAT3SE && unnamedParam1
  );
  XMFLOAT3SE & operator=(
    XMFLOAT3SE && unnamedParam1
  );
  void         XMFLOAT3SE(
    uint32_t Packed
  ) noexcept;
  void         XMFLOAT3SE(
    float _x,
    float _y,
    float _z
  ) noexcept;
  void         XMFLOAT3SE(
    const float *pArray
  ) noexcept;
  void         operator uint32_t() noexcept;
  XMFLOAT3SE & operator=(
    uint32_t Packed
  ) noexcept;
};

Membres

9 xm

Composant x 9 bits.

9 ym

Composant y 9 bits.

9 zm

Composant z 9 bits.

5 e

Exposant partagé 5 bits.

v

Entier 32 bits non signé représentant le vecteur 3D.

void XMFLOAT3SE()

Constructeur par défaut pour XMFLOAT3SE.

Constructeur par défaut pour XMFLOAT3SE.

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

void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)

Constructeur pour XMFLOAT3SE.

Constructeur pour XMFLOAT3SE.

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

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE( XMFLOAT3SE && unnamedParam1)

Constructeur pour XMFLOAT3SE.

Constructeur pour XMFLOAT3SE.

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

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE( uint32_t Packed) noexcept

Initialise une nouvelle instance de à partir d’une XMFLOAT3SEuint32_t variable contenant des données de composant dans un format packed.

Ce constructeur initialise une nouvelle instance de XMFLOAT3SE à partir d’une uint32_t variable contenant des données de composant dans un format packé.

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

void XMFLOAT3SE( float _x, float _y, float _z) noexcept

Initialise une nouvelle instance de à partir de XMFLOAT3SE trois float arguments.

Ce constructeur initialise une nouvelle instance de XMFLOAT3SE à partir de trois float arguments.

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

void XMFLOAT3SE( const float *pArray) noexcept

Initialise une nouvelle instance de XMFLOAT3SE à partir d’un argument de tableau à trois élémentsfloat.

Ce constructeur initialise une nouvelle instance de XMFLOAT3SE à partir d’un argument de tableau flottant à trois éléments.

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

void, opérateur uint32_t() noexcept

Retourne une instance de uint32_t contenir les composants du XMFLOAT3SE instance dans un format compressé.

Cet opérateur retourne une instance de uint32_t contenir les composants du XMFLOAT3SE instance dans un format packé.

Note Cet opérateur n’est disponible que sous C++.
 

XMFLOAT3SE & operator=( uint32_t Packed) noexcept

Cet opérateur affecte les données du composant vectoriel emballées dans un instance de uint32_t à la instance actuelle de XMFLOAT3SE.

Note Cet opérateur n’est disponible que sous C++.
 

Remarques

Les valeurs des trois composants d’un instance de XMFLOAT3SE sont stockées dans le v de l’instance au format suivant : le membre e de la XMFLOAT3SE structure - l’exposant partagé par les mantisses des valeurs à virgule flottante des trois composants de XMFLOAT3SE - est stocké dans l’ordre le plus élevé de la valeur renvoyée, et la mantisse du composant x stockée dans les bits les moins significatifs.


   (E5Z9Y9X9): [31] EEEEEzzz zzzzzzyy yyyyyyyx xxxxxxxx [0]

Ou en détail :

  • Les bits 0-8 de Packed sont les mantisses 9 bits de la valeur à virgule flottante du composant x : le membre xm de la structure actuelle.
  • Les bits 9 à 17 de Packed sont les mantisses de 9 bits de la valeur à virgule flottante du composant y : le membre ym de la structure actuelle.
  • Les bits 18 à 26 de Packed sont les mantisses de 9 bits de la valeur à virgule flottante du composant z : le membre zm de la structure actuelle.
  • Les bits 27-31 de Packed sont l’exposant 5 bits utilisé avec les mantisses stockées (xm, ym, zm) pour représenter la taille de chaque composant : le membre e de la structure actuelle.
Comme il n’existe aucun bits de signe dans le format pour stocker les composants dans la XMFLOAT3SE structure, toutes les valeurs de composant sont positives.

XMFLOAT3SE peut être chargé dans des instances de XMVECTOR à l’aide de XMLoadFloat3SE.

Les instances de XMVECTOR peuvent être stockées dans un instance de XMFLOAT3SE avec XMStoreFloat3SE.

Noms: Utiliser DirectX ::P ackedVector

Configuration requise pour la plateforme

Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 avec le SDK Windows pour Windows 8. Pris en charge pour les applications de bureau Win32, les applications du Windows Store et les applications Windows Phone 8.

Configuration requise

   
En-tête directxpackedvector.h

Voir aussi

Structures de bibliothèque DirectXMath

XMFLOAT3SE Extensions