Share via


XMFLOAT3PK 結構 (directxpackedvector.h)

描述以 X 和 Y 元件儲存為 11 位浮點數的 3D 向量,以及儲存為 10 位浮點值的 Z 元件。

如需在 C++ 中程式設計時可使用 XMFLOAT3PK 的其他功能清單,例如建構函式和運算符,請參閱 XMFLOAT3PK Extensions

語法

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

成員

6 xm

x 元件的 6 位 mantissa。

5 xe

x 元件的 5 位偏差指數。

6 ym

y 元件的 6 位 mantissa。

5 ye

y 元件的5位偏差指數。

5 zm

z 元件的 5 位 mantissa。

5 ze

z元件的5位偏差指數。

v

表示 3D 向量的無符號 32 位整數。

void XMFLOAT3PK ()

的預設建構函式 XMFLOAT3PK

XMFLOAT3PK的預設建構函式。

注意 此建構函式只能在 C++ 下使用。
 

void XMFLOAT3PK ( const XMFLOAT3PK & unnamedParam1)

的建構函式 XMFLOAT3PK

XMFLOAT3PK的建構函式。

注意 此建構函式只能在 C++ 下使用。

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK ( XMFLOAT3PK && unnamedParam1)

將 向量元件數據從 一個 實例 XMFLOAT3SE 指派給 目前的 實例 XMFLOAT3SE

這個運算子會將向量元件數據從 一個 實例 指派給 目前的 實例 XMFLOAT3SEXMFLOAT3SE。

注意 此運算子僅適用於 C++。

XMFLOAT3PK & operator= ( XMFLOAT3PK && unnamedParam1)

將 向量元件數據從 一個 實例 XMFLOAT3PK 指派給 目前的 實例 XMFLOAT3PK

這個運算子會將向量元件數據從 一個 實例 指派給 目前的 實例 XMFLOAT3PKXMFLOAT3PK。

注意 此運算子僅適用於 C++。

void XMFLOAT3PK ( uint32_t Packed) noexcept

從變數初始化 的新實例 XMFLOAT3PKuint32_t 其中包含封裝格式的元件數據。

這個建構函式會從uint32_t包含封裝格式之元件數據的變數,初始化 XMFLOAT3PK 的新實例。

注意 此建構函式只能在 C++ 下使用。
 

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

從三float個自變數初始化 的新實例XMFLOAT3PK

這個建構函式會從三float個自變數初始化 XMFLOAT3PK 的新實例。

注意 此建構函式只能在 C++ 下使用。
 

void XMFLOAT3PK ( const float *pArray) noexcept

從三float個項目數位自變數初始化 XMFLOAT3PK 的新實例。

這個建構函式會從三個元素float數位自變數初始化 XMFLOAT3PK 的新實例。

注意 此建構函式只能在 C++ 下使用。

void 運算符 uint32_t () noexcept

傳回的實例 uint32_t ,其中包含封裝格式之 XMFLOAT3PK 實例的元件。

這個運算符會傳回 的實例 uint32_t ,其中包含封裝格式之 XMFLOAT3PK 實例的元件。

注意 此運算子僅適用於 C++。
 

XMFLOAT3PK & operator= ( uint32_t Packed) noexcept

這個運算子會將 封裝在 實例 uint32_t 中的向量元件數據指派給目前的 XMFLOAT3PK 實例。

注意 此運算子僅適用於 C++。
 

備註

沒有符號位。 這表示所有部分有效位數都是正數。 z 元件會儲存在最重要的位,而 x 元件會儲存在最不重要的位,如下所示:

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

或詳細資料:

  • v 的位 0-5 是 x 元件浮點值的 6 位 mantissa:結構的 xm 成員。
  • v 的位 6-10 x 元件浮點值的 5 位指數,其為 結構的 xe 成員。
  • v 的位 11-16 是 y 元件浮點值的 6 位 mantissa:結構的 ym 成員。
  • v 的位 17-21 是 y 元件浮點值的 5 位指數:結構的 ye 成員。
  • v 的位 22-26 是 z 元件浮點值的 5 位 mantissa:結構的 zm 成員。
  • v 的位 27-31 是 z 元件浮點值的 5 位指數:結構的 ze 成員。
XMFLOAT3PK可以使用 XMLoadFloat3PK 載入 XMVECTOR 實例。

XMVECTOR實例可以使用 XMStoreFloat3PK 儲存到 的XMFLOAT3PK實例中。

MIN_F10 / MIN_F11 = 6.10352e-5

MAX_F10 = 64512

MAX_F11 = 65024

命名空間: 使用 DirectX::P ackedVector

平臺需求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 搭配 Windows SDK for Windows 8。 支援 Win32 傳統型應用程式、Windows 市集應用程式和 Windows Phone 8 個應用程式。

規格需求

   
標頭 directxpackedvector.h

另請參閱

DirectXMath 連結庫結構

XMFLOAT3PK延伸模組