XMFLOAT3SE 结构 (directxpackedvector.h)

描述三个浮点分量的 3D 向量,这些分量具有 9 位尾数,每个分量共享相同的 5 位指数。

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

语法

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

成员

9 xm

9 位 x 分量。

9 ym

9 位 y 分量。

9 zm

9 位 z 分量。

5 e

5 位共享指数。

v

表示 3D 向量的无符号 32 位整数。

void XMFLOAT3SE ()

的默认构造函数 XMFLOAT3SE

XMFLOAT3SE的默认构造函数。

注意 此构造函数仅在 C++ 下可用。
 

void XMFLOAT3SE ( const XMFLOAT3SE & unnamedParam1)

XMFLOAT3SE构造函数。

XMFLOAT3SE的构造函数。

注意 此构造函数仅在 C++ 下可用。

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE ( XMFLOAT3SE && unnamedParam1)

XMFLOAT3SE构造函数。

XMFLOAT3SE的构造函数。

注意 此构造函数仅在 C++ 下可用。

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE ( uint32_t Packed) noexcept

uint32_t包含组件数据的变量以打包格式初始化 的新实例XMFLOAT3SE

此构造函数从uint32_t包含已打包格式的组件数据的变量初始化 XMFLOAT3SE 的新实例。

注意 此构造函数仅在 C++ 下可用。
 

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

从三float个参数初始化 的新XMFLOAT3SE实例。

此构造函数从三float个参数初始化 XMFLOAT3SE 的新实例。

注意 此构造函数仅在 C++ 下可用。
 

void XMFLOAT3SE ( const float *pArray) noexcept

从三个元素float数组参数初始化 XMFLOAT3SE 的新实例。

此构造函数从三个元素浮点数组参数初始化 XMFLOAT3SE 的新实例。

注意 此构造函数仅在 C++ 下可用。

void 运算符 uint32_t () noexcept

返回 一个 实例 uint32_t ,其中包含打包格式的 XMFLOAT3SE 实例的组件。

此运算符返回一个 实例 uint32_t ,其中包含打包格式 的 XMFLOAT3SE 实例的组件。

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

XMFLOAT3SE & operator= ( uint32_t Packed) noexcept

此运算符将 打包在 实例 uint32_t 中的矢量分量数据分配给 XMFLOAT3SE 的当前实例。

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

注解

实例 XMFLOAT3SE 的三个分量的值以以下格式存储在 实例的 v 中:结构的 e 成员 XMFLOAT3SE -- 所有三个组件的浮点值的 mantissas 共享的 XMFLOAT3SE 指数存储在返回值的最高顺序位中,x 分量存储在最小有效位中。


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

或详细信息:

  • Packed 的 0-8 位是 x 组件的浮点值的 9 位 mantissa:当前结构的 xm 成员。
  • Packed 的 9-17 位是 y 组件浮点值的 9 位 mantissa:当前结构的 ym 成员。
  • Packed 的 18-26 位是 z 组件浮点值的 9 位 mantissa:当前结构的 zm 成员。
  • Packed 的位 27-31 是与存储的 mantissas (xmymzm) 一起使用的 5 位指数,表示每个组件的大小:当前结构的 e 成员。
由于在结构中存储组件 XMFLOAT3SE 的格式中没有符号位,因此所有组件值都是正数。

XMFLOAT3SE可以使用 XMLoadFloat3SE 将加载到 XMVECTOR 的实例中。

XMVECTOR的实例可以使用 XMStoreFloat3SE 存储到 的XMFLOAT3SE实例中。

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

平台要求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 与 Windows SDK for Windows 8。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。

要求

   
标头 directxpackedvector.h

另请参阅

DirectXMath 库结构

XMFLOAT3SE扩展