Compartir a través de


estructura XMFLOAT3SE (directxpackedvector.h)

Describe un vector 3D de tres componentes de punto flotante con mantissas de 9 bits, cada uno de los cuales comparte el mismo exponente de 5 bits.

Para obtener una lista de funcionalidades adicionales, como constructores y operadores que están disponibles mediante XMFLOAT3SE al programar en C++, consulte XMFLOAT3SE Extensiones.

Sintaxis

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

Miembros

9 xm

Componente x de 9 bits.

9 ym

Componente y de 9 bits.

9 zm

Componente z de 9 bits.

5 e

Exponente compartido de 5 bits.

v

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

void XMFLOAT3SE()

Constructor predeterminado para XMFLOAT3SE.

Constructor predeterminado para XMFLOAT3SE.

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

void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)

Constructor para XMFLOAT3SE.

Constructor para XMFLOAT3SE.

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

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE( XMFLOAT3SE && unnamedParam1)

Constructor para XMFLOAT3SE.

Constructor para XMFLOAT3SE.

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

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE( uint32_t Packed) noexcept

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

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

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

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

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

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

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

void XMFLOAT3SE( const float *pArray) noexcept

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

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

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 XMFLOAT3SE instancia en un formato empaquetado.

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

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

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

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

Comentarios

Los valores de los tres componentes de una instancia de XMFLOAT3SE se almacenan en la v de la instancia en el siguiente formato: el miembro e de la XMFLOAT3SE estructura - el exponente compartido por los mantissas de los valores de punto flotante de los tres componentes de XMFLOAT3SE - se almacena en los bits de orden más alto del valor devuelto y la mantisa del componente x almacenado en los bits menos significativos.


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

O con detalle:

  • Los bits 0-8 de Empaquetado son la mantisa de 9 bits del valor de punto flotante del componente x : el miembro xm de la estructura actual.
  • Los bits 9-17 de Packed son la mantisa de 9 bits del valor de punto flotante del componente y : el miembro ym de la estructura actual.
  • Los bits 18-26 de Packed son la mantisa de 9 bits del valor de punto flotante del componente z : el miembro zm de la estructura actual.
  • Los bits 27-31 de Empaquetado son el exponente de 5 bits utilizado con los mantissas almacenados (xm, ym, zm) para representar el tamaño de cada componente: el miembro e de la estructura actual.
Dado que no hay bits de signo en el formato para almacenar los componentes en la XMFLOAT3SE estructura, todos los valores de componente son positivos.

XMFLOAT3SE se puede cargar en instancias de XMVECTOR mediante XMLoadFloat3SE.

Las instancias de XMVECTOR se pueden almacenar en una instancia de XMFLOAT3SE con XMStoreFloat3SE.

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 XMFLOAT3SE