Condividi tramite


XMFLOAT3SE struttura (directxpackedvector.h)

Descrive un vettore 3D di tre componenti a virgola mobile con mantissa a 9 bit, ognuno che condivide lo stesso esponente a 5 bit.

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

Sintassi

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

Members

9 xm

Componente x a 9 bit.

9 ym

Componente a 9 bit.

9 zm

Componente z a 9 bit.

5 e

Esponente condiviso a 5 bit.

v

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

void XMFLOAT3SE()

Costruttore predefinito per XMFLOAT3SE.

Costruttore predefinito per XMFLOAT3SE.

Nota Questo costruttore è disponibile solo in C++.
 

void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)

Costruttore per XMFLOAT3SE.

Costruttore per XMFLOAT3SE.

Nota Questo costruttore è disponibile solo in C++.

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE( XMFLOAT3SE && senza nomeParam1)

Costruttore per XMFLOAT3SE.

Costruttore per XMFLOAT3SE.

Nota Questo costruttore è disponibile solo in C++.

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE( uint32_t pacchetto) noexcept

Inizializza una nuova istanza di da una variabile contenente i dati dei XMFLOAT3SE componenti in un uint32_t formato compresso.

Questo costruttore inizializza una nuova istanza di XMFLOAT3SE da una uint32_t variabile contenente i dati dei componenti in un formato compresso.

Nota Questo costruttore è disponibile solo in C++.
 

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

Inizializza una nuova istanza di XMFLOAT3SE da tre float argomenti.

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

Nota Questo costruttore è disponibile solo in C++.
 

void XMFLOAT3SE( const float *pArray) noexcept

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

Questo costruttore inizializza una nuova istanza di XMFLOAT3SE da un oggetto da un argomento di matrice float di tre elementi.

Nota Questo costruttore è disponibile solo in C++.

Operatore void uint32_t() noexcept

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

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

Nota Questo operatore è disponibile solo in C++.
 

XMFLOAT3SE & operator=( uint32_t pacchetto) noexcept

Questo operatore assegna i dati del componente vettore inseriti in un'istanza di all'istanza corrente di uint32_tXMFLOAT3SE.

Nota Questo operatore è disponibile solo in C++.
 

Commenti

I valori dei tre componenti di un'istanza di XMFLOAT3SE vengono archiviati nella v dell'istanza nel formato seguente: il membro XMFLOAT3SEe della struttura - l'esponente condiviso dai mantissas dei valori a virgola mobile di tutti e tre i componenti di XMFLOAT3SE - viene archiviato nei bit più alti del valore restituito e la mantissa del componente x archiviata nei bit meno significativi.


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

O in dettaglio:

  • I bit 0-8 di Packed sono la mantissa a 9 bit del valore a virgola mobile del componente x : il membro xm della struttura corrente.
  • I bit 9-17 di Pack sono la mantissa a 9 bit del valore a virgola mobile del componente y: il membro ym della struttura corrente.
  • I bit a 18-26 del pacchetto sono la mantissa a 9 bit del valore a virgola mobile del componente z : il membro zm della struttura corrente.
  • I bit 27-31 di Pack sono gli esponenti a 5 bit usati con le mantissa archiviate (xm, ym, zm) per rappresentare le dimensioni di ogni componente: il membro e della struttura corrente.
Poiché non sono presenti bit di segno nel formato per archiviare i componenti nella XMFLOAT3SE struttura, tutti i valori dei componenti sono positivi.

XMFLOAT3SE può essere caricato in istanze di XMVECTOR usando XMLoadFloat3SE.

Le istanze di possono essere archiviate in un'istanza di XMVECTORXMFLOAT3SE con XMStoreFloat3SE.

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 app desktop Win32, app di Windows Store e Windows Phone 8 app.

Requisiti

   
Intestazione directxpackedvector.h

Vedi anche

Strutture della libreria DirectXMath

estensioni XMFLOAT3SE