estructura XMFLOAT3PK (directxpackedvector.h)

Describe un vector 3D con componentes X e Y almacenados como número de punto flotante de 11 bits y un componente Z almacenado como un valor de punto flotante de 10 bits.

Para obtener una lista de funcionalidades adicionales, como constructores y operadores, disponibles mediante XMFLOAT3PK al programar en C++, consulte XMFLOAT3PK Extensiones.

Sintaxis

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

Miembros

6 xm

Mantisa de 6 bits para el componente x.

5 xe

Exponente sesgado de 5 bits para el componente x.

6 ym

Mantisa de 6 bits para el componente y.

5 ye

Exponente sesgado de 5 bits para el componente y.

5 zm

Mantisa de 5 bits para el componente z.

5 ze

Exponente sesgado de 5 bits para el componente z.

v

Entero de 32 bits sin signo que representa el vector 3D.

void XMFLOAT3PK()

Constructor predeterminado para XMFLOAT3PK.

Constructor predeterminado para XMFLOAT3PK.

Nota Este constructor solo está disponible en C++.
 

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

Constructor para XMFLOAT3PK.

Constructor para XMFLOAT3PK.

Nota Este constructor solo está disponible en C++.

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

Asigna los datos del componente vectorial de una instancia de XMFLOAT3SE a la instancia actual de XMFLOAT3SE.

Este operador asigna los datos del componente vectorial de una instancia de XMFLOAT3SE a la instancia actual de XMFLOAT3SE.

Nota Este operador solo está disponible en C++.

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

Asigna los datos del componente vectorial de una instancia de XMFLOAT3PK a la instancia actual de XMFLOAT3PK.

Este operador asigna los datos del componente vectorial de una instancia de XMFLOAT3PK a la instancia actual de XMFLOAT3PK.

Nota Este operador solo está disponible en C++.

void XMFLOAT3PK( uint32_t Packed) noexcept

Inicializa una nueva instancia de XMFLOAT3PK desde una uint32_t variable que contiene datos de componentes en un formato empaquetado.

Este constructor inicializa una nueva instancia de XMFLOAT3PK a partir de una uint32_t variable que contiene datos de componentes en un formato empaquetado.

Nota Este constructor solo está disponible en C++.
 

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

Inicializa una nueva instancia de a partir de XMFLOAT3PK tres float argumentos.

Este constructor inicializa una nueva instancia de XMFLOAT3PK a partir de tres float argumentos.

Nota Este constructor solo está disponible en C++.
 

void XMFLOAT3PK( const float *pArray) noexcept

Inicializa una nueva instancia de XMFLOAT3PK a partir de un argumento de matriz de tres elementos float .

Este constructor inicializa una nueva instancia de XMFLOAT3PK a partir de un argumento de matriz de tres elementos float .

Nota Este constructor solo está disponible en C++.

operador void uint32_t() noexcept

Devuelve una instancia de uint32_t que contiene los componentes de la XMFLOAT3PK instancia en un formato empaquetado.

Este operador devuelve una instancia de uint32_t que contiene los componentes de la instancia de XMFLOAT3PK en un formato empaquetado.

Nota Este operador solo está disponible en C++.
 

XMFLOAT3PK & operator=( uint32_t Packed) noexcept

Este operador asigna los datos del componente vectorial empaquetados en una instancia de uint32_t a la instancia actual de XMFLOAT3PK.

Nota Este operador solo está disponible en C++.
 

Comentarios

No hay bits de signo. Esto significa que todos los números de precisión parcial son positivos. El componente z se almacena en los bits más significativos y el componente x se almacena en los bits menos significativos como este:

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

O con detalle:

  • Los bits 0-5 de v son la mantisa de 6 bits del valor de punto flotante del componente x : el miembro xm de la estructura.
  • Los bits de 6 a 10 de v son el exponente de 5 bits del valor de punto flotante del componente xe del miembro xe de la estructura.
  • Los bits 11-16 de v son la mantisa de 6 bits del valor de punto flotante del componente y : el miembro ym de la estructura.
  • Los bits 17-21 de v son el exponente de 5 bits del valor de punto flotante del componente y : el miembro ye de la estructura.
  • Los bits 22-26 de v son la mantisa de 5 bits del valor de punto flotante del componente z : el miembro zm de la estructura.
  • Los bits 27-31 de v son el exponente de 5 bits del valor de punto flotante del componente z : el miembro ze de la estructura.
XMFLOAT3PK se puede cargar en instancias de XMVECTOR mediante XMLoadFloat3PK.

Las instancias de XMVECTOR se pueden almacenar en una instancia de XMFLOAT3PK con XMStoreFloat3PK.

MIN_F10 / MIN_F11 = 6.10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

Nombres: Uso de DirectX::P ackedVector

Requisitos de la plataforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK para Windows 8. Compatible con aplicaciones de escritorio Win32, aplicaciones de la Tienda Windows y Windows Phone 8 aplicaciones.

Requisitos

   
Encabezado directxpackedvector.h

Consulte también

Estructuras de biblioteca de DirectXMath

extensiones de XMFLOAT3PK