Compartilhar via


estrutura XMFLOAT3SE (directxpackedvector.h)

Descreve um vetor 3D de três componentes de ponto flutuante com mantissas de 9 bits, cada um compartilhando o mesmo expoente de 5 bits.

Para obter uma lista de funcionalidades adicionais, como construtores e operadores que estão disponíveis usando XMFLOAT3SE quando você está programando no C++, consulte extensões XMFLOAT3SE.

Sintaxe

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

Membros

9 xm

O componente x de 9 bits.

9 ym

O componente y de 9 bits.

9 zm

O componente z de 9 bits.

5 e

O expoente compartilhado de 5 bits.

v

Inteiro de 32 bits sem sinal que representa o vetor 3D.

void XMFLOAT3SE()

Construtor padrão para XMFLOAT3SE.

Construtor padrão para XMFLOAT3SE.

Nota Esse construtor só está disponível em C++.
 

void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)

Um construtor para XMFLOAT3SE.

Um construtor para XMFLOAT3SE.

Nota Esse construtor só está disponível em C++.

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE( XMFLOAT3SE && unnamedParam1)

Um construtor para XMFLOAT3SE.

Um construtor para XMFLOAT3SE.

Nota Esse construtor só está disponível em C++.

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE( uint32_t Packed) noexcept

Inicializa uma nova instância de de XMFLOAT3SE uma uint32_t variável que contém dados de componente em um formato empacotado.

Esse construtor inicializa uma nova instância de XMFLOAT3SE de uma uint32_t variável que contém dados de componente em um formato empacotado.

Nota Esse construtor só está disponível em C++.
 

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

Inicializa uma nova instância de de XMFLOAT3SE três float argumentos.

Esse construtor inicializa uma nova instância de XMFLOAT3SE de três float argumentos.

Nota Esse construtor só está disponível em C++.
 

void XMFLOAT3SE( const float *pArray) noexcept

Inicializa uma nova instância de XMFLOAT3SE de um argumento de matriz de três elementos float .

Esse construtor inicializa uma nova instância de XMFLOAT3SE de um de um argumento de matriz float de três elementos.

Nota Esse construtor só está disponível em C++.

operador void uint32_t() noexcept

Retorna uma instância de uint32_t que contém os componentes da XMFLOAT3SE instância em um formato empacotado.

Esse operador retorna uma instância de uint32_t que contém os componentes da instância XMFLOAT3SE em um formato empacotado.

Nota Esse operador só está disponível em C++.
 

XMFLOAT3SE & operator=( uint32_t Packed) noexcept

Esse operador atribui os dados do componente vetor empacotados em uma instância do uint32_t à instância atual do XMFLOAT3SE.

Nota Esse operador só está disponível em C++.
 

Comentários

Os valores dos três componentes de uma instância de XMFLOAT3SE são armazenados no v da instância no seguinte formato: o membro e da XMFLOAT3SE estrutura – o expoente compartilhado pelas mantissas dos valores de ponto flutuante dos três componentes de XMFLOAT3SE – é armazenado nos bits de ordem mais alta do valor retornado e a mantissa do componente x armazenado nos bits menos significativos.


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

Ou em detalhes:

  • Os bits 0-8 de Packed são a mantissa de 9 bits do valor de ponto flutuante do componente x : o membro xm da estrutura atual.
  • Os bits 9-17 de Packed são a mantissa de 9 bits do valor de ponto flutuante do componente y : o membro ym da estrutura atual.
  • Os bits 18-26 de Packed são a mantissa de 9 bits do valor de ponto flutuante do componente z : o membro zm da estrutura atual.
  • Os bits 27-31 de Packed são o expoente de 5 bits usado com as mantissas armazenadas (xm, ym, zm) para representar o tamanho de cada componente: o membro e da estrutura atual.
Como não há bits de sinal no formato para armazenar os componentes na XMFLOAT3SE estrutura, todos os valores de componente são positivos.

XMFLOAT3SE pode ser carregado em instâncias de XMVECTOR usando XMLoadFloat3SE.

As instâncias de XMVECTOR podem ser armazenadas em uma instância do XMFLOAT3SE com XMStoreFloat3SE.

Namespace: Usar DirectX::P ackedVector

Requisitos de plataforma

Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 com o SDK do Windows para Windows 8. Com suporte para aplicativos da área de trabalho Win32, aplicativos da Windows Store e aplicativos Windows Phone 8.

Requisitos

   
Cabeçalho directxpackedvector.h

Confira também

Estruturas da Biblioteca DirectXMath

Extensões do XMFLOAT3SE