XMMATRIX 結構 (directxmath.h)
描述對應至四個硬體向量緩存器之 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 結構的新實例。
從十六個純量float
值初始化 結構的新實例XMMATRIX
。
從十六個純量float
值初始化 XMMATRIX 結構的新實例。
void XMMATRIX ( const float *pArray) noexcept
從十六個元素float
陣列初始化 XMMATRIX 結構的新實例。
從十六個元素float
陣列初始化 XMMATRIX 結構的新實例。
float operator()( size_t Row, size_t Column) noexcept
float & 運算符 () ( size_t Row, size_t Column) noexcept
傳 reference
回 實例的 XMMATRIX
矩陣專案,如數據列和數據行自變數所指定。
這個運算符會將 reference
傳回至 實例 XMMATRIX 的矩陣元素,如數據列和數據行自變數所指定。
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
是數據列主要,而且所有接受 XMMATRIX
做為參數的 DirectXMath 函式都預期數據會組織為數據列主要。
中的數據 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 陣列成員 的 等位。 當您使用這些等位成員時,效能不佳的結果。 當您使用 _XM_NO_INTRINSICS_ 建置應用程式時,DirectXMath.h 仍會定義這些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 個應用程式。規格需求
需求 | 值 |
---|---|
標頭 | directxmath.h |