Condividi tramite


struttura XMFLOAT3PK (directxpackedvector.h)

Descrive un vettore 3D con componenti X e Y archiviati come numero a virgola mobile a 11 bit e il componente Z archiviato come valore a virgola mobile a 10 bit.

Per un elenco di funzionalità aggiuntive, ad esempio costruttori e operatori, disponibili quando XMFLOAT3PK si esegue la programmazione in C++, vedere XMFLOAT3PK Extensions.

Sintassi

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

Members

6 xm

Mantissa a 6 bit per il componente x.

5 xe

Esponente distorto a 5 bit per il componente x.

6 ym

Mantissa a 6 bit per il componente y.

5 ye

Esponente distorto a 5 bit per il componente y.

5 zm

Mantissa a 5 bit per il componente z.

5 ze

Esponente distorto a 5 bit per il componente z.

v

Intero senza segno a 32 bit che rappresenta il vettore 3D.

void XMFLOAT3PK()

Costruttore predefinito per XMFLOAT3PK.

Costruttore predefinito per XMFLOAT3PK.

Nota Questo costruttore è disponibile solo in C++.
 

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

Costruttore per XMFLOAT3PK.

Costruttore per XMFLOAT3PK.

Nota Questo costruttore è disponibile solo in C++.

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

Assegna i dati del componente vettoriale da un'istanza di XMFLOAT3SE all'istanza corrente di XMFLOAT3SE.

Questo operatore assegna i dati del componente vettoriale da un'istanza di XMFLOAT3SE all'istanza corrente di XMFLOAT3SE.

Nota Questo operatore è disponibile solo in C++.

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

Assegna i dati del componente vettoriale da un'istanza di XMFLOAT3PK all'istanza corrente di XMFLOAT3PK.

Questo operatore assegna i dati del componente vettoriale da un'istanza di XMFLOAT3PK all'istanza corrente di XMFLOAT3PK.

Nota Questo operatore è disponibile solo in C++.

void XMFLOAT3PK( uint32_t Packed) noexcept

Inizializza una nuova istanza di XMFLOAT3PK da una uint32_t variabile contenente i dati del componente in un formato compresso.

Questo costruttore inizializza una nuova istanza di XMFLOAT3PK da una uint32_t variabile contenente i dati del componente in un formato compresso.

Nota Questo costruttore è disponibile solo in C++.
 

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

Inizializza una nuova istanza di XMFLOAT3PK da tre float argomenti.

Questo costruttore inizializza una nuova istanza di XMFLOAT3PK da tre float argomenti.

Nota Questo costruttore è disponibile solo in C++.
 

void XMFLOAT3PK( const float *pArray) noexcept

Inizializza una nuova istanza di XMFLOAT3PK da un argomento di matrice di tre elementi float .

Questo costruttore inizializza una nuova istanza di XMFLOAT3PK da un argomento di matrice a tre elementi float .

Nota Questo costruttore è disponibile solo in C++.

Operatore void uint32_t() noexcept

Restituisce un'istanza di uint32_t contenente i componenti dell'istanza XMFLOAT3PK in un formato compresso.

Questo operatore restituisce un'istanza di uint32_t contenente i componenti dell'istanza di XMFLOAT3PK in un formato compresso.

Nota Questo operatore è disponibile solo in C++.
 

XMFLOAT3PK & operator=( uint32_t Packed) noexcept

Questo operatore assegna i dati del componente vettoriale compressi in un'istanza di uint32_t all'istanza corrente di XMFLOAT3PK.

Nota Questo operatore è disponibile solo in C++.
 

Commenti

Non ci sono segni. Ciò significa che tutti i numeri di precisione parziale sono positivi. Il componente z viene archiviato nei bit più significativi e il componente x viene archiviato nei bit meno significativi come segue:

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

In alternativa, in dettaglio:

  • I bit 0-5 di v sono la mantissa a 6 bit del valore a virgola mobile del componente x : il membro xm della struttura.
  • I bit da 6 a 10 di v sono l'esponente a 5 bit del valore a virgola mobile del componente x il membro xe della struttura.
  • I bit da 11 a 16 di v sono la mantissa a 6 bit del valore a virgola mobile del componente y : il membro ym della struttura.
  • I bit da 17 a 21 di v sono l'esponente a 5 bit del valore a virgola mobile del componente y : il membro ye della struttura.
  • I bit da 22 a 26 di v sono la mantissa a 5 bit del valore a virgola mobile del componente z : il membro zm della struttura.
  • I bit da 27 a 31 di v sono l'esponente a 5 bit del valore a virgola mobile del componente z : il membro ze della struttura.
XMFLOAT3PK può essere caricato in istanze di XMVECTOR usando XMLoadFloat3PK.

Le istanze di XMVECTOR possono essere archiviate in un'istanza di XMFLOAT3PK con XMStoreFloat3PK.

MIN_F10/MIN_F11 = 6.10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

Namespace: Usare DirectX::P ackedVector

Requisiti della piattaforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK per Windows 8. Supportato per le app desktop Win32, le app di Windows Store e Windows Phone 8 app.

Requisiti

   
Intestazione directxpackedvector.h

Vedi anche

Strutture della libreria DirectXMath

estensioni XMFLOAT3PK