Freigeben über


XMFLOAT3SE-Struktur (directxpackedvector.h)

Beschreibt einen 3D-Vektor aus drei Gleitkommakomponenten mit 9-Bit-Mantissen, die jeweils den gleichen 5-Bit-Exponenten nutzen.

Eine Liste mit zusätzlichen Funktionen, z. B. Konstruktoren und Operatoren, die beim Programmieren in C++ verfügbar XMFLOAT3SE sind, finden Sie unter XMFLOAT3SE-Erweiterungen.

Syntax

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

Member

9 xm

Die 9-Bit-x-Komponente.

9 ym

Die 9-Bit-y-Komponente.

9 zm

Die 9-Bit-z-Komponente.

5 e

Der freigegebene 5-Bit-Exponent.

v

32-Bit-Ganzzahl ohne Vorzeichen, die den 3D-Vektor darstellt.

void XMFLOAT3SE()

Standardkonstruktor für XMFLOAT3SE.

Standardkonstruktor für XMFLOAT3SE.

Hinweis Dieser Konstruktor ist nur unter C++ verfügbar.
 

void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)

Ein Konstruktor für XMFLOAT3SE.

Ein Konstruktor für XMFLOAT3SE.

Hinweis Dieser Konstruktor ist nur unter C++ verfügbar.

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE( XMFLOAT3SE && unbenannteParam1)

Ein Konstruktor für XMFLOAT3SE.

Ein Konstruktor für XMFLOAT3SE.

Hinweis Dieser Konstruktor ist nur unter C++ verfügbar.

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE( uint32_t Verpackt) noexcept

Initialisiert eine neue instance von XMFLOAT3SE aus einer uint32_t Variablen, die Komponentendaten in einem gepackten Format enthält.

Dieser Konstruktor initialisiert eine neue instance von XMFLOAT3SE aus einer uint32_t Variablen, die Komponentendaten in einem gepackten Format enthält.

Hinweis Dieser Konstruktor ist nur unter C++ verfügbar.
 

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

Initialisiert eine neue instance von XMFLOAT3SE drei float Argumenten.

Dieser Konstruktor initialisiert eine neue instance von XMFLOAT3SE aus drei float Argumenten.

Hinweis Dieser Konstruktor ist nur unter C++ verfügbar.
 

void XMFLOAT3SE( const float *pArray) noexcept

Initialisiert eine neue instance von XMFLOAT3SE aus einem Argument mit drei Elementarraysfloat.

Dieser Konstruktor initialisiert eine neue instance von XMFLOAT3SE aus einem aus einem Float-Array-Argument mit drei Elementen.

Hinweis Dieser Konstruktor ist nur unter C++ verfügbar.

void-Operator uint32_t() noexcept

Gibt eine instance zurückuint32_t, die die Komponenten des XMFLOAT3SE instance in einem gepackten Format enthält.

Dieser Operator gibt eine instance zurückuint32_t, die die Komponenten der XMFLOAT3SE instance in einem gepackten Format enthält.

Hinweis Dieser Operator ist nur unter C++ verfügbar.
 

XMFLOAT3SE & operator=( uint32_t Packed) noexcept

Dieser Operator weist die in einer instance von uint32_t gepackten Daten der Vektorkomponente dem aktuellen instance von XMFLOAT3SE zu.

Hinweis Dieser Operator ist nur unter C++ verfügbar.
 

Hinweise

Die Werte der drei Komponenten einer instance von XMFLOAT3SE werden im v des instance im folgenden Format gespeichert: Das e-Element der XMFLOAT3SE Struktur - der Exponent, der von den Mantissen der Gleitkommawerte aller drei Komponenten XMFLOAT3SE von gemeinsam genutzt wird - wird in der höchsten Reihenfolge bits des Rückgabewerts und die Mantisse der x-Komponente in den am wenigsten signifikanten Bits gespeichert.


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

Oder im Detail:

  • Die Bits 0-8 von Packed sind die 9-Bit-Mantisse des Gleitkommawerts der x-Komponente: das xm-Element der aktuellen Struktur.
  • Die Bits 9-17 von Packed sind die 9-Bit-Mantisse des Gleitkommawerts der y-Komponente: das ym-Element der aktuellen Struktur.
  • Bits 18-26 von Packed sind die 9-Bit-Mantissa des Gleitkommawerts der z-Komponente: das zm-Element der aktuellen Struktur.
  • Bits 27-31 of Packed ist der 5-Bit-Exponent, der mit den gespeicherten Mantissen (xm, ym, zm) verwendet wird, um die Größe jeder Komponente darzustellen: das e-Element der aktuellen Struktur.
Da es keine Vorzeichenbits im Format zum Speichern der Komponenten in der XMFLOAT3SE Struktur gibt, sind alle Komponentenwerte positiv.

XMFLOAT3SEkann mithilfe von XMLoadFloat3SE in XMVECTOR-Instanzen geladen werden.

Instanzen von XMVECTOR können in einer instance von XMFLOAT3SE mit XMStoreFloat3SE gespeichert werden.

Namespace: Verwenden von DirectX::P ackedVector

Plattformanforderungen

Microsoft Visual Studio 2010 oder Microsoft Visual Studio 2012 mit dem Windows SDK für Windows 8. Unterstützt für Win32-Desktop-Apps, Windows Store-Apps und Windows Phone 8-Apps.

Anforderungen

   
Kopfzeile directxpackedvector.h

Weitere Informationen

DirectXMath-Bibliotheksstrukturen

XMFLOAT3SE Erweiterungen