(directxmath.h) 的 XMMATRIX 结构
描述在映射到四个硬件矢量寄存器的 16 字节边界上对齐的 4*4 矩阵。
DirectXMath 使用行主矩阵、行向量和预乘法。 手动性取决于使用哪个函数版本 (RH 与 LH) 。
有关使用 C++ 编程时可用的 XMMATRIX
其他功能(例如构造函数和运算符)的列表,请参阅 XMMATRIX 扩展。
语法
struct XMMATRIX {
union {
XMVECTOR r[4];
struct {
float _11;
float _12;
float _13;
float _14;
float _21;
float _22;
float _23;
float _24;
float _31;
float _32;
float _33;
float _34;
float _41;
float _42;
float _43;
float _44;
};
float m[4][4];
};
XMVECTOR r[4];
void XMMATRIX();
void XMMATRIX(
const XMMATRIX & unnamedParam1
);
XMMATRIX & operator=(
const XMMATRIX & M
) noexcept;
XMMATRIX & operator=(
const XMMATRIX & unnamedParam1
);
void XMMATRIX(
XMMATRIX && unnamedParam1
);
XMMATRIX & operator=(
XMMATRIX && unnamedParam1
);
void XMMATRIX(
FXMVECTOR R0,
FXMVECTOR R1,
FXMVECTOR R2,
CXMVECTOR R3
) noexcept;
void XMMATRIX(
float m00,
float m01,
float m02,
float m03,
float m10,
float m11,
float m12,
float m13,
float m20,
float m21,
float m22,
float m23,
float m30,
float m31,
float m32,
float m33
) noexcept;
void XMMATRIX(
const float *pArray
) noexcept;
float operator()(
size_t Row,
size_t Column
) noexcept;
float & operator()(
size_t Row,
size_t Column
) noexcept;
XMMATRIX operator+() noexcept;
XMMATRIX operator-() noexcept;
XMMATRIX &XM_CALLCONV operator+=(
FXMMATRIX M
) noexcept;
XMMATRIX &XM_CALLCONV operator-=(
FXMMATRIX M
) noexcept;
XMMATRIX &XM_CALLCONV operator*=(
FXMMATRIX M
) noexcept;
XMMATRIX & operator*=(
float S
) noexcept;
XMMATRIX & operator/=(
float S
) noexcept;
XMMATRIX XM_CALLCONV operator+(
FXMMATRIX M
) noexcept;
XMMATRIX XM_CALLCONV operator-(
FXMMATRIX M
) noexcept;
XMMATRIX XM_CALLCONV operator*(
FXMMATRIX M
) noexcept;
XMMATRIX operator*(
float S
) noexcept;
XMMATRIX operator/(
float S
) noexcept;
};
成员
r[4]
四个矢量的数组,表示矩阵的行。
_11
_12
_13
_14
_21
_22
_23
_24
_31
_32
_33
_34
_41
_42
_43
_44
m[4]
的默认构造函数 XMMATRIX
。
XMMATRIX 的默认构造函数。
void XMMATRIX ( const XMMATRIX & unnamedParam1)
的 XMMATRIX
构造函数。
XMMATRIX 的构造函数。
XMMATRIX & operator= ( const XMMATRIX & M) noexcept
将 的一个实例的 XMMATRIX
矩阵数据分配给 的当前实例 XMMATRIX
,并将 返回 reference
给当前实例。
此运算符将 一个 XMMATRIX 实例的矩阵数据分配给 的当前实例 XMMATRIX
,并将 返回 reference
给当前实例。
XMMATRIX & operator=( const XMMATRIX & unnamedParam1)
void XMMATRIX( XMMATRIX && unnamedParam1)
XMMATRIX & operator=( XMMATRIX && unnamedParam1)
void XMMATRIX ( FXMVECTOR R0、FXMVECTOR R1、FXMVECTOR R2、CXMVECTOR R3) noexcept
从 的四个实例初始化 XMMATRIX 结构的新实例 XMVECTOR
。
从 XMVECTOR 数据类型的四个实例初始化 XMMATRIX 结构的新实例。
从 16 个标float
量值初始化 结构的新实例XMMATRIX
。
从 16 个标float
量值初始化 XMMATRIX 结构的新实例。
void XMMATRIX ( const float *pArray) noexcept
从 16 个元素float
数组初始化 XMMATRIX 结构的新实例。
从 16 个元素float
数组初始化 XMMATRIX 结构的新实例。
float operator()( size_t Row, size_t Column) noexcept
float & 运算符 () ( size_t Row, size_t Column) noexcept
返回 reference
由行参数和列参数指定的实例 XMMATRIX
的矩阵元素的 。
此运算符向行参数和列参数指定的实例 XMMATRIX 的矩阵元素返回 reference
。
XMMATRIX operator+() noexcept
XMMATRIX operator-() noexcept
XMMATRIX &XM_CALLCONV operator+=( FXMMATRIX M) noexcept
XMMATRIX &XM_CALLCONV operator-=( FXMMATRIX M) noexcept
XMMATRIX &XM_CALLCONV 运算符*= ( FXMMATRIX M) noexcept
对 的当前实例 XMMATRIX
执行矩阵乘以另一个 实例 XMMATRIX
,并返回对已更新的当前实例的引用。
此运算符对 XMMATRIX 的当前实例执行矩阵乘以另一个 实例, XMMATRIX
并返回对当前实例的引用,该实例已更新。
XMMATRIX & operator*=( float S) noexcept
XMMATRIX & operator/=( float S) noexcept
XMMATRIX XM_CALLCONV operator+( FXMMATRIX M) noexcept
XMMATRIX XM_CALLCONV operator-( FXMMATRIX M) noexcept
XMMATRIX XM_CALLCONV 运算符* ( FXMMATRIX M) noexcept
对 的当前实例 XMMATRIX
执行矩阵乘以 的另一个实例 XMMATRIX
。
此运算符对 XMMATRIX 的当前实例执行矩阵乘以的另一个实例 XMMATRIX
。
XMMATRIX operator*( float S) noexcept
XMMATRIX operator/( float S) noexcept
注解
在 DirectXMath.h 头文件中,系统使用对象的别名 XMMATRIX
,特别是 CXMMATRIX。
标头使用 别名来符合不同编译器的最佳内联调用约定。 对于使用 DirectXMath 的大多数项目,只需将其视为 的确切别名 XMMATRIX
就足够了。
有效:
typedef const XMMATRIX CXMMATRIX;
有关需要如何处理不同平台调用约定的详细信息的项目,请参阅 库内部。
XMMATRIX
是主要行,接受 作为参数的所有 DirectXMath 函数 XMMATRIX
都要求将数据组织为行主。
中的数据 XMMATRIX
具有以下布局。
_11 _12 _13 _14
_21 _22 _23 _24
_31 _32 _33 _34
_41 _42 _43 _44
DirectXMath 将 XMMATRIX 定义为完全不透明类型。 若要访问 XMMATRIX 的各个元素,请对给定行使用等效类型(如 XMFLOAT4 )或整个矩阵 的XMFLOAT4X4 。
XMMATRIX
包含 _11 到 _44 成员和 m 数组成员的联合。 使用这些联合成员时,性能不佳。 DirectXMath.h 仍然为使用 _XM_NO_INTRINSICS_ 生成应用时定义这些XMMATRIX
联合成员。 XNAMath 版本 2.05 提供了一个选择加入XM_STRICT_XMMATRIX来强制实施 DirectXMath 行为。平台要求
Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 以及 Windows SDK for Windows 8。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。要求
要求 | 值 |
---|---|
Header | directxmath.h |