Compartilhar via


estrutura XMFLOAT3PK (directxpackedvector.h)

Descreve um vetor 3D com componentes X e Y armazenados como número de ponto flutuante de 11 bits e componente Z armazenado como um valor de ponto flutuante de 10 bits.

Para obter uma lista de funcionalidades adicionais, como construtores e operadores, disponíveis usando XMFLOAT3PK ao programar no C++, consulte XMFLOAT3PK Extensões.

Sintaxe

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

Membros

6 xm

A mantissa de 6 bits para o componente x.

5 xe

O expoente tendencioso de 5 bits para o componente x.

6 ym

A mantissa de 6 bits para o componente y.

5 ye

O expoente tendencioso de 5 bits para o componente y.

5 zm

A mantissa de 5 bits para o componente z.

5 ze

O expoente tendencioso de 5 bits para o componente z.

v

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

void XMFLOAT3PK()

Construtor padrão para XMFLOAT3PK.

Construtor padrão para XMFLOAT3PK.

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

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

Um construtor para XMFLOAT3PK.

Um construtor para XMFLOAT3PK.

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

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

Atribui os dados do componente vetor de uma instância do XMFLOAT3SE à instância atual do XMFLOAT3SE.

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

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

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

Atribui os dados do componente vetor de uma instância do XMFLOAT3PK à instância atual do XMFLOAT3PK.

Esse operador atribui os dados do componente vetor de uma instância de XMFLOAT3PK à instância atual do XMFLOAT3PK.

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

void XMFLOAT3PK( uint32_t Packed) noexcept

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

Esse construtor inicializa uma nova instância de XMFLOAT3PK 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 XMFLOAT3PK( float _x, float _y, float _z) noexcept

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

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

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

void XMFLOAT3PK( const float *pArray) noexcept

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

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

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

noexcept do operador void uint32_t()

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

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

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

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

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

Comentários

Não há bits de sinal. Isso significa que todos os números de precisão parcial são positivos. O componente z é armazenado nos bits mais significativos e o componente x é armazenado nos bits menos significativos como este:

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

Ou em detalhes:

  • Os bits 0-5 de v são a mantissa de 6 bits do valor de ponto flutuante do componente x : o membro xm da estrutura.
  • Os bits 6-10 de v são o expoente de 5 bits do valor de ponto flutuante do componente x , o membro xe da estrutura.
  • Os bits 11-16 de v são a mantissa de 6 bits do valor de ponto flutuante do componente y : o membro ym da estrutura.
  • Os bits 17-21 de v são o expoente de 5 bits do valor de ponto flutuante do componente y : o membro ye da estrutura.
  • Os bits 22-26 de v são a mantissa de 5 bits do valor de ponto flutuante do componente z : o membro zm da estrutura.
  • Os bits 27-31 de v são o expoente de 5 bits do valor de ponto flutuante do componente z : o membro ze da estrutura.
XMFLOAT3PK pode ser carregado em instâncias de XMVECTOR usando XMLoadFloat3PK.

Instâncias de XMVECTOR podem ser armazenadas em uma instância do XMFLOAT3PK com XMStoreFloat3PK.

MIN_F10/MIN_F11 = 6,10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

Namespace: Usar DirectX::P ackedVector

Requisitos da 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 de XMFLOAT3PK