Freigeben über


XMFLOAT3PK-Struktur (directxpackedvector.h)

Beschreibt einen 3D-Vektor mit X- und Y-Komponenten, die als 11-Bit-Gleitkommazahl und Z-Komponente als 10-Bit-Gleitkommawert gespeichert sind.

Eine Liste mit zusätzlichen Funktionen, z. B. Konstruktoren und Operatoren, die XMFLOAT3PK bei der Programmierung in C++ verfügbar sind, finden Sie unter XMFLOAT3PK-Erweiterungen.

Syntax

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

Member

6 xm

Die 6-Bit-Mantisse für die x-Komponente.

5 xe

Der 5-Bit-Voreingenommene Exponent für die x-Komponente.

6 ym

Die 6-Bit-Mantisse für die y-Komponente.

5 ye

Der 5-Bit-Voreingenommene Exponent für die y-Komponente.

5 zm

Die 5-Bit-Mantisse für die z-Komponente.

5 ze

Der 5-Bit-Voreingenommene Exponent für die z-Komponente.

v

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

void XMFLOAT3PK()

Standardkonstruktor für XMFLOAT3PK.

Standardkonstruktor für XMFLOAT3PK.

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

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

Ein Konstruktor für XMFLOAT3PK.

Ein Konstruktor für XMFLOAT3PK.

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

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

Weist die Daten der Vektorkomponente aus einer instance von XMFLOAT3SE der aktuellen instance von zuXMFLOAT3SE.

Dieser Operator weist die Daten der Vektorkomponente aus einem instance XMFLOAT3SE der aktuellen instance von XMFLOAT3SEzu.

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

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

Weist die Daten der Vektorkomponente aus einer instance von XMFLOAT3PK der aktuellen instance von zuXMFLOAT3PK.

Dieser Operator weist die Daten der Vektorkomponente aus einem instance XMFLOAT3PK der aktuellen instance von XMFLOAT3PKzu.

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

void XMFLOAT3PK( uint32_t Packed) noexcept

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

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

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

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

Initialisiert eine neue instance von XMFLOAT3PK drei float Argumenten.

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

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

void XMFLOAT3PK( const float *pArray) noexcept

Initialisiert eine neue instance von XMFLOAT3PK aus einem Arrayargument mit drei Elementenfloat.

Dieser Konstruktor initialisiert eine neue instance von XMFLOAT3PK aus einem Arrayargument mit drei Elementenfloat.

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

void-Operator uint32_t() noexcept

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

Dieser Operator gibt eine instance von uint32_t zurück, die die Komponenten der XMFLOAT3PK instance in einem gepackten Format enthält.

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

XMFLOAT3PK & operator=( uint32_t Packed) noexcept

Dieser Operator weist die in einer instance von uint32_t gepackten Vektorkomponentendaten der aktuellen instance von XMFLOAT3PK zu.

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

Hinweise

Es gibt keine Vorzeichenbits. Dies bedeutet, dass alle Zahlen mit teilweiser Genauigkeit positiv sind. Die z-Komponente wird in den wichtigsten Bits gespeichert, und die x-Komponente wird in den am wenigsten signifikanten Bits wie folgt gespeichert:

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

Oder im Detail:

  • Die Bits 0-5 von v sind die 6-Bit-Mantisse des Gleitkommawerts der x-Komponente: das xm-Element der -Struktur.
  • Die Bits 6-10 von v sind der 5-Bit-Exponent des Gleitkommawerts der xe-Komponente, das xe-Element der -Struktur.
  • Die Bits 11-16 von v sind die 6-Bit-Mantisse des Gleitkommawerts der y-Komponente: das ym-Element der -Struktur.
  • Die Bits 17-21 von v sind der 5-Bit-Exponent des Gleitkommawerts der y-Komponente: der Ye-Member der -Struktur.
  • Die Bits 22-26 von v sind die 5-Bit-Mantisse des Gleitkommawerts der z-Komponente: das zm-Element der -Struktur.
  • Die Bits 27-31 von v sind der 5-Bit-Exponent des Gleitkommawerts der z-Komponente: das ze-Element der -Struktur.
XMFLOAT3PKkann mithilfe von XMLoadFloat3PK in XMVECTOR-Instanzen geladen werden.

Instanzen von XMVECTOR können in einer instance von XMFLOAT3PK mit XMStoreFloat3PK gespeichert werden.

MIN_F10/MIN_F11 = 6,10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

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

XMFLOAT3PK-Erweiterungen