XMFLOAT3PK 结构 (directxpackedvector.h)

描述一个 3D 矢量,其中 X 和 Y 分量存储为 11 位浮点数,Z 分量存储为 10 位浮点值。

有关使用 C++ 编程时可用的 XMFLOAT3PK 其他功能(如构造函数和运算符)的列表,请参阅 XMFLOAT3PK 扩展

语法

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 位尾数。

5 xe

x 分量 5 位偏置指数。

6 ym

y 分量为 6 位尾数。

5 ye

y 分值的 5 位偏置指数。

5 zm

z 分量 5 位尾数。

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当前实例。

此运算符将 XMFLOAT3SE 的一个实例中的向量分量数据分配给 的 XMFLOAT3SE当前实例。

注意 此运算符仅在 C++ 下可用。

XMFLOAT3PK & operator= ( XMFLOAT3PK && unnamedParam1)

将 的一个实例中的 XMFLOAT3PK 向量组件数据分配给 的 XMFLOAT3PK当前实例。

此运算符将 XMFLOAT3PK的一 个实例中的矢量分量数据分配给 的 XMFLOAT3PK当前实例。

注意 此运算符仅在 C++ 下可用。

void XMFLOAT3PK ( uint32_t Packed) noexcept

uint32_t包含采用打包格式的XMFLOAT3PK组件数据的变量初始化 的新实例。

此构造函数从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 operator 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 位尾数:结构的 xm 成员。
  • v 的 6-10 位是 x 分量浮点值的 5 位指数,即结构的 xe 成员。
  • v 的 11-16 位是 y 分量浮点值的 6 位尾数:结构的 ym 成员。
  • v 的位 17-21 是 y 分量浮点值的 5 位指数:结构的 ye 成员。
  • v 的 22-26 位是 z 分量浮点值的 5 位尾数:结构的 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 扩展