Partager via


XMFLOAT3PK structure (directxpackedvector.h)

Décrit un vecteur 3D avec des composants X et Y stockés en tant que nombre à virgule flottante de 11 bits, et un composant Z stocké sous forme de valeur à virgule flottante de 10 bits.

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

Syntaxe

struct XMFLOAT3PK {
  union {
    struct {
      uint32_t xm : 6;
      uint32_t xe : 5;
      uint32_t ym : 6;
      uint32_t ye : 5;
      uint32_t zm : 5;
      uint32_t ze : 5;
    };
      uint32_t v;
  };
  void         XMFLOAT3PK();
  void         XMFLOAT3PK(
    const XMFLOAT3PK & unnamedParam1
  );
  XMFLOAT3PK & operator=(
    const XMFLOAT3PK & unnamedParam1
  );
  void         XMFLOAT3PK(
    XMFLOAT3PK && unnamedParam1
  );
  XMFLOAT3PK & operator=(
    XMFLOAT3PK && unnamedParam1
  );
  void         XMFLOAT3PK(
    uint32_t Packed
  ) noexcept;
  void         XMFLOAT3PK(
    float _x,
    float _y,
    float _z
  ) noexcept;
  void         XMFLOAT3PK(
    const float *pArray
  ) noexcept;
  void         operator uint32_t() noexcept;
  XMFLOAT3PK & operator=(
    uint32_t Packed
  ) noexcept;
};

Membres

6 xm

Mantisse 6 bits pour le composant x.

5 xe

Exposant biaisé 5 bits pour le composant x.

6 ym

Mantisse 6 bits pour le composant y.

5 ye

Exposant biaisé 5 bits pour le composant y.

5 zm

Mantisse 5 bits pour le composant z.

5 ze

Exposant biaisé 5 bits pour le composant z.

v

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

void XMFLOAT3PK()

Constructeur par défaut pour XMFLOAT3PK.

Constructeur par défaut pour XMFLOAT3PK.

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

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

Constructeur pour XMFLOAT3PK.

Constructeur pour XMFLOAT3PK.

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

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

Affecte les données du composant vectoriel d’un instance de XMFLOAT3SE à la instance actuelle de XMFLOAT3SE.

Cet opérateur affecte les données du composant vectoriel d’un instance de XMFLOAT3SE à la instance actuelle de XMFLOAT3SE.

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

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

Affecte les données du composant vectoriel d’un instance de XMFLOAT3PK à la instance actuelle de XMFLOAT3PK.

Cet opérateur affecte les données du composant vectoriel d’un instance de XMFLOAT3PK à la instance actuelle de XMFLOAT3PK.

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

void XMFLOAT3PK( uint32_t Packed) noexcept

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

Ce constructeur initialise une nouvelle instance de XMFLOAT3PK à 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 XMFLOAT3PK( float _x, float _y, float _z) noexcept

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

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

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

void XMFLOAT3PK( const float *pArray) noexcept

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

Ce constructeur initialise une nouvelle instance de XMFLOAT3PK à partir d’un argument de tableau à trois élémentsfloat.

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 XMFLOAT3PK instance dans un format compressé.

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

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

XMFLOAT3PK & 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 XMFLOAT3PK.

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

Remarques

Il n’y a pas de bits de signe. Cela signifie que tous les nombres de précision partielle sont positifs. Le composant z est stocké dans les bits les plus significatifs, et le composant x est stocké dans les bits les moins significatifs comme suit :

(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]

Ou en détail :

  • Les bits 0-5 de v sont les mantisses 6 bits de la valeur à virgule flottante du composant x : le membre xm de la structure.
  • Les bits 6-10 de v sont l’exposant 5 bits de la valeur à virgule flottante du composant x , membre xe de la structure.
  • Les bits 11 à 16 de v sont les mantisses 6 bits de la valeur à virgule flottante du composant y : le membre ym de la structure.
  • Les bits 17-21 de v sont l’exposant 5 bits de la valeur à virgule flottante du composant y : le membre ye de la structure.
  • Les bits 22-26 de v sont les mantisses 5 bits de la valeur à virgule flottante du composant z : le membre zm de la structure.
  • Les bits 27-31 de v sont l’exposant 5 bits de la valeur à virgule flottante du composant z : le membre ze de la structure.
XMFLOAT3PK peut être chargé dans des instances de XMVECTOR à l’aide de XMLoadFloat3PK.

Les instances de XMVECTOR peuvent être stockées dans un instance de XMFLOAT3PK avec XMStoreFloat3PK.

MIN_F10 / MIN_F11 = 6,10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

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

XMFLOAT3PK Extensions