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 位整数。
的默认构造函数 XMFLOAT3PK
。
XMFLOAT3PK的默认构造函数。
void XMFLOAT3PK ( const XMFLOAT3PK & unnamedParam1)
的 XMFLOAT3PK
构造函数。
XMFLOAT3PK的构造函数。
XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)
void XMFLOAT3PK ( XMFLOAT3PK && unnamedParam1)
将 的一个实例中的 XMFLOAT3SE
向量组件数据分配给 的 XMFLOAT3SE
当前实例。
此运算符将 XMFLOAT3SE 的一个实例中的向量分量数据分配给 的 XMFLOAT3SE
当前实例。
XMFLOAT3PK & operator= ( XMFLOAT3PK && unnamedParam1)
将 的一个实例中的 XMFLOAT3PK
向量组件数据分配给 的 XMFLOAT3PK
当前实例。
此运算符将 XMFLOAT3PK的一 个实例中的矢量分量数据分配给 的 XMFLOAT3PK
当前实例。
void XMFLOAT3PK ( uint32_t Packed) noexcept
从uint32_t
包含采用打包格式的XMFLOAT3PK
组件数据的变量初始化 的新实例。
此构造函数从uint32_t
包含采用打包格式的组件数据的变量初始化 XMFLOAT3PK 的新实例。
void XMFLOAT3PK ( float _x、float _y、float _z) noexcept
从三float
个参数初始化 的新XMFLOAT3PK
实例。
此构造函数从三float
个参数初始化 XMFLOAT3PK 的新实例。
void XMFLOAT3PK ( const float *pArray) noexcept
从三个元素float
数组参数初始化 XMFLOAT3PK 的新实例。
此构造函数从三个元素float
数组参数初始化 XMFLOAT3PK 的新实例。
void operator uint32_t () noexcept
返回 的实例,该实例 uint32_t
包含打包格式的 XMFLOAT3PK
实例的组件。
此运算符返回一个 实例 uint32_t
,其中包含打包格式的 XMFLOAT3PK 实例的组件。
XMFLOAT3PK & operator= ( uint32_t Packed) noexcept
此运算符将 打包在 实例 uint32_t
中的矢量分量数据分配给 XMFLOAT3PK的当前实例。
注解
没有符号位。 这意味着所有部分精度数字都是正数。 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 |