13GX_CORE_NAMESPACE_BEGIN()
15#define GX_MATRIX_SAFE_MODE 0
108 GX_FORCE_INLINE f32
getValue(u32 row, u32 column)
const;
110 GX_FORCE_INLINE
void setValue(u32 row, u32 column, f32 value);
114 GX_FORCE_INLINE
const f32&
getReference(u32 row, u32 column)
const;
191 GX_INLINE
GxMatrix33(f32 m00, f32 m01, f32 m02,
192 f32 m10, f32 m11, f32 m12,
193 f32 m20, f32 m21, f32 m22);
233 GX_FORCE_INLINE
void setRotate(f32 sinValue, f32 cosValue);
249 GX_FORCE_INLINE
void setScale(f32 x, f32 y);
259 GX_FORCE_INLINE f32
getValue(u32 row, u32 column)
const;
261 GX_FORCE_INLINE
void setValue(u32 row, u32 column, f32 value);
265 GX_FORCE_INLINE
const f32&
getReference(u32 row, u32 column)
const;
364 f32 m10, f32 m11, f32 m12,
365 f32 m20, f32 m21, f32 m22,
366 f32 m30, f32 m31, f32 m32);
414 GX_FORCE_INLINE
void setRotateX(f32 sinValue, f32 cosValue);
418 GX_FORCE_INLINE
void setRotateY(f32 sinValue, f32 cosValue);
422 GX_FORCE_INLINE
void setRotateZ(f32 sinValue, f32 cosValue);
466 GX_FORCE_INLINE
void setPosition(f32 x, f32 y, f32 z);
472 GX_FORCE_INLINE
void setScale(f32 x, f32 y, f32 z);
480 GX_FORCE_INLINE
const f32*
getRowPtr(u32 row)
const;
490 GX_FORCE_INLINE f32
getValue(u32 row, u32 column)
const;
492 GX_FORCE_INLINE
void setValue(u32 row, u32 column, f32 value);
496 GX_FORCE_INLINE
const f32&
getReference(u32 row, u32 column)
const;
570 GX_FORCE_INLINE
void setZero(
void);
583#if defined(GX_USE_SSE2)
588 f32 _m11, _m12, _m13, _m14;
589 f32 _m21, _m22, _m23, _m24;
590 f32 _m31, _m32, _m33, _m34;
591 f32 _m41, _m42, _m43, _m44;
640 GX_INLINE
GxMatrix44(f32 m00, f32 m01, f32 m02, f32 m03,
641 f32 m10, f32 m11, f32 m12, f32 m13,
642 f32 m20, f32 m21, f32 m22, f32 m23,
643 f32 m30, f32 m31, f32 m32, f32 m33);
689 GX_FORCE_INLINE
void setRotateX(f32 sinValue, f32 cosValue);
693 GX_FORCE_INLINE
void setRotateY(f32 sinValue, f32 cosValue);
697 GX_FORCE_INLINE
void setRotateZ(f32 sinValue, f32 cosValue);
733 GX_FORCE_INLINE
void setPosition(f32 x, f32 y, f32 z);
737 GX_FORCE_INLINE
void setScale(f32 x, f32 y, f32 z);
751 GX_FORCE_INLINE f32
getValue(u32 row, u32 column)
const;
753 GX_FORCE_INLINE
void setValue(u32 row, u32 column, f32 value);
757 GX_FORCE_INLINE
const f32&
getReference(u32 row, u32 column)
const;
769 void setFrustumRH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ);
771 void setFrustumLH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ);
773 void setOrthoRH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ);
775 void setOrthoRH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ,
const GxVector2& pixelOffset,
const GxSize& viewportSize);
777 void setOrthoLH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ);
779 void setOrthoLH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ,
const GxVector2& pixelOffset,
const GxSize& viewportSize);
841 GX_FORCE_INLINE
void setZero(
void);
850#if defined(GX_USE_SSE2)
855 f32 _m11, _m12, _m13, _m14;
856 f32 _m21, _m22, _m23, _m24;
857 f32 _m31, _m32, _m33, _m34;
858 f32 _m41, _m42, _m43, _m44;
894 f32 m10, f32 m11, f32 m12, f32 m13,
895 f32 m20, f32 m21, f32 m22, f32 m23);
927 f32 m10, f32 m11, f32 m12, f32 m13,
928 f32 m20, f32 m21, f32 m22, f32 m23,
929 f32 m30, f32 m31, f32 m32, f32 m33);
945GX_CORE_NAMESPACE_END()
INIT
初期化タイプ
Definition GxMath.h:53
AXIS
軸方向
Definition GxMath.h:37
ストリーム書き込みクラス
Definition GxStreamWriter.h:19
色(HDR)
Definition GxColor.h:241
2次元浮動小数点数クラス
Definition GxStruct.h:22
3次元浮動小数点数クラス
Definition GxStruct.h:91
4次元浮動小数点数クラス
Definition GxStruct.h:153
2×2行列(行優先)
Definition GxMatrix.h:37
friend GX_FORCE_INLINE const GxMatrix22 operator+(const GxMatrix22 &matrix0, const GxMatrix22 &matrix1)
行列加算
Definition GxMatrix.inl:139
GX_FORCE_INLINE b32 operator!=(const GxMatrix22 &matrix)
不一致
Definition GxMatrix.inl:173
static GX_FORCE_INLINE const GxMatrix22 & getMulScalar(GxMatrix22 &dst, const GxMatrix22 &matrix, f32 scalar)
スカラ乗算を取得
Definition GxMatrix.inl:327
static GX_FORCE_INLINE const GxMatrix22 & getDivScalar(GxMatrix22 &dst, const GxMatrix22 &matrix, f32 scalar)
スカラ除算を取得
Definition GxMatrix.inl:345
GX_FORCE_INLINE const GxMatrix22 & addMatrix(const GxMatrix22 &matrix)
行列加算
Definition GxMatrix.inl:488
GX_FORCE_INLINE const GxMatrix22 & mulScalar(f32 scalar)
スカラ乗算
Definition GxMatrix.inl:454
GxMatrix22(void)
コンストラクタ
Definition GxMatrix.h:57
GX_FORCE_INLINE f32 getDeterminant(void) const
行列式の値を取得
Definition GxMatrix.inl:295
GX_FORCE_INLINE GxMatrix22 getTranspose(void) const
転置行列を取得
Definition GxMatrix.inl:314
GX_FORCE_INLINE GxVector2 getColumn(u32 column) const
列を取得
Definition GxMatrix.inl:219
static const GxMatrix22 ZERO
0行列
Definition GxMatrix.h:46
GX_FORCE_INLINE b32 operator==(const GxMatrix22 &matrix)
一致
Definition GxMatrix.inl:162
GX_FORCE_INLINE const GxMatrix22 & divScalar(f32 scalar)
スカラ除算
Definition GxMatrix.inl:470
GX_FORCE_INLINE GxMatrix22 & operator*=(f32 scalar)
スカラ乗算代入
Definition GxMatrix.inl:66
static GX_FORCE_INLINE const GxMatrix22 & getMulMatrix(GxMatrix22 &dst, const GxMatrix22 &matrix0, const GxMatrix22 &matrix1)
行列乗算を取得
Definition GxMatrix.inl:383
f32 _m[2][4]
値
Definition GxMatrix.h:160
GX_FORCE_INLINE GxMatrix22 & operator+=(const GxMatrix22 &matrix)
行列加算代入
Definition GxMatrix.inl:90
GX_FORCE_INLINE const GxMatrix22 & mulMatrix(const GxMatrix22 &matrix)
行列乗算
Definition GxMatrix.inl:504
GX_FORCE_INLINE GxMatrix22 & operator/=(f32 scalar)
スカラ除算代入
Definition GxMatrix.inl:78
GX_FORCE_INLINE void setValue(u32 row, u32 column, f32 value)
値を設定
Definition GxMatrix.inl:258
GX_FORCE_INLINE const GxMatrix22 & transpose(void)
転置する
Definition GxMatrix.inl:548
GX_FORCE_INLINE void setColumn(u32 column, const GxVector2 &vector)
列を設定
Definition GxMatrix.inl:231
GX_FORCE_INLINE GxMatrix22 & operator=(const GxMatrix22 &matrix)
代入
Definition GxMatrix.inl:50
GX_FORCE_INLINE const GxVector2 & getRow(u32 row) const
行を取得
Definition GxMatrix.inl:195
friend GX_FORCE_INLINE const GxMatrix22 operator/(const GxMatrix22 &matrix, f32 scalar)
スカラ除算
Definition GxMatrix.inl:127
GX_FORCE_INLINE f32 getValue(u32 row, u32 column) const
値を取得
Definition GxMatrix.inl:244
GX_FORCE_INLINE GxMatrix22 getInverse(void) const
逆行列を取得
Definition GxMatrix.inl:304
friend GX_FORCE_INLINE const GxMatrix22 operator*(const GxMatrix22 &matrix, f32 scalar)
スカラ乗算
Definition GxMatrix.inl:115
static GX_FORCE_INLINE const GxMatrix22 & getAddMatrix(GxMatrix22 &dst, const GxMatrix22 &matrix0, const GxMatrix22 &matrix1)
行列加算を取得
Definition GxMatrix.inl:365
static const GxMatrix22 IDENTITY
単位行列
Definition GxMatrix.h:48
GX_FORCE_INLINE const GxMatrix22 & inverse(void)
逆行列にする
Definition GxMatrix.inl:525
GX_FORCE_INLINE f32 & getReference(u32 row, u32 column)
参照を取得
Definition GxMatrix.inl:271
GX_FORCE_INLINE void setRow(u32 row, const GxVector2 &vector)
行を設定
Definition GxMatrix.inl:207
GX_FORCE_INLINE void setIdentity(void)
単位行列に設定
Definition GxMatrix.inl:181
3×3行列(行優先)
Definition GxMatrix.h:169
GX_FORCE_INLINE const GxMatrix33 & mulScalar(f32 scalar)
スカラ乗算
Definition GxMatrix.inl:1201
GX_FORCE_INLINE void setRow(u32 row, const GxVector3 &vector)
行を設定
Definition GxMatrix.inl:895
GX_FORCE_INLINE f32 & getReference(u32 row, u32 column)
参照を取得
Definition GxMatrix.inl:960
static GX_FORCE_INLINE const GxMatrix33 & getMulMatrix(GxMatrix33 &dst, const GxMatrix33 &matrix0, const GxMatrix33 &matrix1)
行列乗算を取得
Definition GxMatrix.inl:1093
GX_FORCE_INLINE GxMatrix33 & operator=(const GxMatrix33 &matrix)
代入
Definition GxMatrix.inl:592
GX_FORCE_INLINE const GxMatrix33 & mulRotate(f32 radian)
回転乗算
Definition GxMatrix.inl:1303
GX_FORCE_INLINE GxMatrix33 & operator+=(const GxMatrix33 &matrix)
行列加算代入
Definition GxMatrix.inl:638
friend GX_FORCE_INLINE const GxMatrix33 operator+(const GxMatrix33 &matrix0, const GxMatrix44 &matrix1)
行列加算
friend GX_FORCE_INLINE const GxMatrix33 operator*(const GxMatrix33 &matrix, f32 scalar)
スカラ乗算
Definition GxMatrix.inl:663
GX_FORCE_INLINE void setTranslate(const GxVector2 &vector)
平行移動行列を設定
Definition GxMatrix.inl:779
GX_FORCE_INLINE void setRotate(f32 radian)
回転行列を設定
Definition GxMatrix.h:235
GX_FORCE_INLINE GxVector3 getColumn(u32 column) const
列を取得
Definition GxMatrix.inl:908
static GX_FORCE_INLINE const GxMatrix33 & getMulScalar(GxMatrix33 &dst, const GxMatrix33 &matrix, f32 scalar)
スカラ乗算を取得
Definition GxMatrix.inl:1019
friend GX_FORCE_INLINE const GxMatrix33 operator/(const GxMatrix33 &matrix, f32 scalar)
スカラ除算
Definition GxMatrix.inl:677
GX_FORCE_INLINE const GxVector3 & getRow(u32 row) const
行を取得
Definition GxMatrix.inl:884
GX_FORCE_INLINE const GxMatrix33 & mulTranslate(const GxVector2 &vector)
平行移動乗算
Definition GxMatrix.inl:1317
GX_FORCE_INLINE GxMatrix33 & operator*=(f32 scalar)
スカラ乗算代入
Definition GxMatrix.inl:614
GX_FORCE_INLINE const GxMatrix33 & inverse(void)
逆行列にする
Definition GxMatrix.inl:1406
GX_FORCE_INLINE GxMatrix33 & operator/=(f32 scalar)
スカラ除算代入
Definition GxMatrix.inl:626
GX_FORCE_INLINE const GxVector2 & getPosition(void) const
平行移動量を取得
Definition GxMatrix.h:241
GX_FORCE_INLINE void setPosition(const GxVector2 &position)
平行移動量のみを設定
Definition GxMatrix.inl:820
f32 _m[3][4]
値
Definition GxMatrix.h:321
GX_FORCE_INLINE void setColumn(u32 column, const GxVector3 &vector)
列を設定
Definition GxMatrix.inl:919
GX_FORCE_INLINE GxMatrix33 getInverse(void) const
逆行列を取得
Definition GxMatrix.inl:995
GX_FORCE_INLINE void setRotate(f32 sinValue, f32 cosValue)
回転行列を設定
Definition GxMatrix.inl:759
GX_FORCE_INLINE const GxMatrix33 & divScalar(f32 scalar)
スカラ除算
Definition GxMatrix.inl:1223
GX_FORCE_INLINE b32 operator!=(const GxMatrix33 &matrix)
不一致
Definition GxMatrix.inl:730
GxMatrix33(void)
コンストラクタ
Definition GxMatrix.h:189
static const GxMatrix33 IDENTITY
単位行列
Definition GxMatrix.h:180
GX_FORCE_INLINE f32 getValue(u32 row, u32 column) const
値を取得
Definition GxMatrix.inl:933
GX_FORCE_INLINE f32 getDeterminant(void) const
行列式の値を取得
Definition GxMatrix.inl:984
GX_FORCE_INLINE void setIdentity(void)
単位行列に設定
Definition GxMatrix.inl:738
static const GxMatrix33 ZERO
0行列
Definition GxMatrix.h:178
GX_FORCE_INLINE const GxMatrix33 & addMatrix(const GxMatrix33 &matrix)
行列加算
Definition GxMatrix.inl:1247
GX_FORCE_INLINE void setValue(u32 row, u32 column, f32 value)
値を設定
Definition GxMatrix.inl:947
static GX_FORCE_INLINE const GxMatrix33 & getAddMatrix(GxMatrix33 &dst, const GxMatrix33 &matrix0, const GxMatrix33 &matrix1)
行列加算を取得
Definition GxMatrix.inl:1069
GX_FORCE_INLINE b32 operator==(const GxMatrix33 &matrix)
一致
Definition GxMatrix.inl:718
GX_FORCE_INLINE GxMatrix33 getTranspose(void) const
転置行列を取得
Definition GxMatrix.inl:1005
GX_FORCE_INLINE const GxMatrix33 & transpose(void)
転置する
Definition GxMatrix.inl:1441
static GX_FORCE_INLINE const GxMatrix33 & getDivScalar(GxMatrix33 &dst, const GxMatrix33 &matrix, f32 scalar)
スカラ除算を取得
Definition GxMatrix.inl:1043
GX_FORCE_INLINE void setScale(const GxVector2 &vector)
スケール行列を設定
Definition GxMatrix.inl:843
GX_FORCE_INLINE const GxMatrix33 & mulMatrix(const GxMatrix33 &matrix)
行列乗算
Definition GxMatrix.inl:1269
GX_FORCE_INLINE const GxMatrix33 & mulScale(const GxVector2 &vector)
スケール乗算
Definition GxMatrix.inl:1356
4×4行列(GPU用)
Definition GxMatrix.h:915
GxMatrix44Gpu(void)
デフォルトコンストラクタ
Definition GxMatrix.h:922
4×4行列(行優先)
Definition GxMatrix.h:607
GX_FORCE_INLINE void setRotateY(f32 radian)
回転行列を設定(Y軸回転)
Definition GxMatrix.h:695
GX_FORCE_INLINE void setRotateYXZ(f32 x, f32 y, f32 z)
回転行列を設定(YXZ軸回転)
Definition GxMatrix.h:711
GX_FORCE_INLINE b32 operator==(const GxMatrix44 &matrix)
一致
Definition GxMatrix.inl:3697
GX_FORCE_INLINE GxVector3 getRotateZXY(void) const
ZXY軸回転角を取得
Definition GxMatrix.inl:3961
GX_FORCE_INLINE GxMatrix44 getInverse(void) const
逆行列を取得
Definition GxMatrix.inl:4347
void setLookAtLH(const GxVector3 &eyePosition, const GxVector3 &atPosition, const GxVector3 &up)
左手座標系・視点行列を設定
Definition GxMatrix.cpp:297
static const GxMatrix44 IDENTITY
単位行列
Definition GxMatrix.h:618
GX_FORCE_INLINE const GxMatrix44 & mulTranslate(const GxVector3 &vector)
平行移動乗算
Definition GxMatrix.inl:4890
GX_FORCE_INLINE const GxVector4 & getRow(u32 row) const
行を取得
Definition GxMatrix.inl:4232
GX_FORCE_INLINE void setRotate(const GxQuaternion &quaternion)
回転行列を設定
Definition GxMatrix.inl:4204
GX_FORCE_INLINE void setRotateAxis(const GxVector3 &vector, f32 radian)
回転行列を設定
Definition GxMatrix.inl:4173
GX_FORCE_INLINE const GxMatrix44 & mulRotateY(f32 radian)
Y軸回転乗算
Definition GxMatrix.inl:4790
GX_FORCE_INLINE void initialize(const GxQuaternion &quaternion, const GxVector3 &position)
初期化
Definition GxMatrix.inl:3560
GxMatrix44(void)
デフォルトコンストラクタ(要素は初期化されない)
Definition GxMatrix.h:630
static GX_FORCE_INLINE const GxMatrix44 & getMulScalar(GxMatrix44 &dst, const GxMatrix44 &matrix, f32 scalar)
スカラ乗算を取得
Definition GxMatrix.inl:4402
GX_FORCE_INLINE const GxMatrix44 & mulQuaternionFront(const GxQuaternion &quaternion)
クォータニオンによる回転乗算(前から乗算)
Definition GxMatrix.inl:4818
GX_FORCE_INLINE const GxMatrix44 & mulMatrix(const GxMatrix44 &matrix)
行列乗算
Definition GxMatrix.inl:4765
GX_FORCE_INLINE void setRotateZ(f32 sinValue, f32 cosValue)
回転行列を設定(Z軸回転)
Definition GxMatrix.inl:3805
GX_FORCE_INLINE GxVector3 getRotateXZY(void) const
XZY軸回転角を取得
Definition GxMatrix.inl:3865
void setPerspectiveFovRH(f32 nearZ, f32 farZ, f32 fov, f32 aspect)
右手座標系・射影変換行列を設定
Definition GxMatrix.cpp:338
void setLookAtRH(const GxVector3 &eyePosition, const GxVector3 &atPosition, const GxVector3 &up)
右手座標系・視点行列を設定
Definition GxMatrix.cpp:257
static GX_FORCE_INLINE const GxMatrix44 & getDivScalar(GxMatrix44 &dst, const GxMatrix44 &matrix, f32 scalar)
スカラ除算を取得
Definition GxMatrix.inl:4434
GX_FORCE_INLINE GxMatrix44 & operator/=(f32 scalar)
スカラ除算代入
Definition GxMatrix.inl:3613
GX_FORCE_INLINE b32 operator!=(const GxMatrix44 &matrix)
不一致
Definition GxMatrix.inl:3710
void setFrustumRH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ)
右手座標系・射影変換行列を設定
Definition GxMatrix.cpp:403
GX_FORCE_INLINE GxMatrix44 & operator*=(f32 scalar)
スカラ乗算代入
Definition GxMatrix.inl:3601
GX_FORCE_INLINE void setRotateZXY(f32 x, f32 y, f32 z)
回転行列を設定(ZXY軸回転)
Definition GxMatrix.h:719
GX_FORCE_INLINE void setTranslate(const GxVector3 &vector)
平行移動行列を設定
Definition GxMatrix.inl:4028
friend GX_FORCE_INLINE const GxMatrix44 operator*(const GxMatrix44 &matrix, f32 scalar)
スカラ乗算
Definition GxMatrix.inl:3650
GX_FORCE_INLINE const GxMatrix44 & mulRotateZ(f32 radian)
Z軸回転乗算
Definition GxMatrix.inl:4804
GX_FORCE_INLINE GxVector4 getColumn(u32 column) const
列を取得
Definition GxMatrix.inl:4257
GX_FORCE_INLINE const GxMatrix44 & divScalar(f32 scalar)
スカラ除算
Definition GxMatrix.inl:4703
GX_FORCE_INLINE GxVector3 getRotateYXZ(void) const
YXZ軸回転角を取得
Definition GxMatrix.inl:3897
GX_FORCE_INLINE void setZero(void)
0を設定
Definition GxMatrix.inl:5120
GX_FORCE_INLINE f32 & getReference(u32 row, u32 column)
参照を取得
Definition GxMatrix.inl:4311
GX_FORCE_INLINE GxMatrix44 getNormalizeAxes(void) const
位置以外の各軸を正規化したものを取得
Definition GxMatrix.inl:4369
friend GX_FORCE_INLINE const GxMatrix44 operator+(const GxMatrix44 &matrix0, const GxMatrix44 &matrix1)
行列加算
Definition GxMatrix.inl:3674
GX_FORCE_INLINE void setRotateZ(f32 radian)
回転行列を設定(Z軸回転)
Definition GxMatrix.h:699
GX_FORCE_INLINE GxMatrix44 getTranspose(void) const
転置行列を取得
Definition GxMatrix.inl:4357
GX_FORCE_INLINE const GxMatrix44 & inverse(void)
逆行列を計算する
Definition GxMatrix.inl:5021
GX_FORCE_INLINE GxVector3 getRotateYZX(void) const
YZX軸回転角を取得
Definition GxMatrix.inl:3929
GX_FORCE_INLINE const GxMatrix44 & mulScale(const GxVector3 &vector)
スケール乗算
Definition GxMatrix.inl:4956
GX_FORCE_INLINE void setRotateYZX(f32 x, f32 y, f32 z)
回転行列を設定(YZX軸回転)
Definition GxMatrix.h:715
friend GX_FORCE_INLINE const GxMatrix44 operator/(const GxMatrix44 &matrix, f32 scalar)
スカラ除算
Definition GxMatrix.inl:3662
GX_FORCE_INLINE void setRow(u32 row, const GxVector4 &vector)
行を設定
Definition GxMatrix.inl:4243
GX_FORCE_INLINE f32 getDeterminant(void) const
行列式の値を取得
Definition GxMatrix.inl:4335
GX_FORCE_INLINE const GxVector3 & getPosition(void) const
平行移動量を取得
Definition GxMatrix.h:729
GX_FORCE_INLINE f32 getValue(u32 row, u32 column) const
値を取得
Definition GxMatrix.inl:4284
void setFrustumLH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ)
左手座標系・射影変換行列を設定
Definition GxMatrix.cpp:428
GX_FORCE_INLINE const GxMatrix44 & transpose(void)
転置する
Definition GxMatrix.inl:5072
GX_FORCE_INLINE void setColumn(u32 column, const GxVector4 &vector)
列を設定
Definition GxMatrix.inl:4269
GX_FORCE_INLINE void setIdentity(void)
単位行列に設定
Definition GxMatrix.inl:3718
f32 _m[4][4]
値
Definition GxMatrix.h:864
GX_FORCE_INLINE void setRotateXYZ(f32 x, f32 y, f32 z)
回転行列を設定(XYZ軸回転)
Definition GxMatrix.h:703
GX_FORCE_INLINE void setValue(u32 row, u32 column, f32 value)
値を設定
Definition GxMatrix.inl:4298
GX_FORCE_INLINE const GxMatrix44 & mulQuaternionBack(const GxQuaternion &quaternion)
クォータニオンによる回転乗算(後ろから乗算)
Definition GxMatrix.inl:4831
static GX_FORCE_INLINE const GxMatrix44 & getAddMatrix(GxMatrix44 &dst, const GxMatrix44 &matrix0, const GxMatrix44 &matrix1)
行列加算を取得
Definition GxMatrix.inl:4468
void setPerspectiveFovLH(f32 nearZ, f32 farZ, f32 fov, f32 aspect)
左手座標系・射影変換行列を設定
Definition GxMatrix.cpp:378
GX_FORCE_INLINE void setRotateY(f32 sinValue, f32 cosValue)
回転行列を設定(Y軸回転)
Definition GxMatrix.inl:3776
GX_FORCE_INLINE GxVector3 getRotateXYZ(void) const
XYZ軸回転角を取得
Definition GxMatrix.inl:3832
GX_FORCE_INLINE void setRotateZYX(f32 x, f32 y, f32 z)
回転行列を設定(ZYX軸回転)
Definition GxMatrix.h:723
void setOrthoRH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ)
右手座標系・正射影変換行列を設定
Definition GxMatrix.cpp:453
GX_FORCE_INLINE GxMatrix44 & operator+=(const GxMatrix44 &matrix)
行列加算代入
Definition GxMatrix.inl:3625
GX_FORCE_INLINE const GxMatrix44 & mulScalar(f32 scalar)
スカラ乗算
Definition GxMatrix.inl:4673
GX_FORCE_INLINE void setRotateX(f32 sinValue, f32 cosValue)
回転行列を設定(X軸回転)
Definition GxMatrix.inl:3747
GX_FORCE_INLINE GxMatrix44 & operator=(const GxMatrix44 &matrix)
代入
Definition GxMatrix.inl:3571
GX_FORCE_INLINE void setScale(const GxVector3 &vector)
スケール行列を設定
Definition GxMatrix.inl:4114
static GxMatrix44 getMatrix(AXIS axis0, const GxVector3 &vector0, AXIS axis1, const GxVector3 &vector1)
2つの軸とベクトルから行列を取得
Definition GxMatrix.cpp:564
GX_FORCE_INLINE const GxMatrix44 & mulRotateX(f32 radian)
X軸回転乗算
Definition GxMatrix.inl:4776
GX_FORCE_INLINE void setRotateXZY(f32 x, f32 y, f32 z)
回転行列を設定(XZY軸回転)
Definition GxMatrix.h:707
GX_FORCE_INLINE const GxMatrix44 & addMatrix(const GxMatrix44 &matrix)
行列加算
Definition GxMatrix.inl:4735
static const GxMatrix44 ZERO
0行列
Definition GxMatrix.h:616
void setOrthoLH(f32 left, f32 right, f32 top, f32 bottom, f32 nearZ, f32 farZ)
左手座標系・正射影変換行列を設定
Definition GxMatrix.cpp:509
static GX_FORCE_INLINE const GxMatrix44 & getMulMatrix(GxMatrix44 &dst, const GxMatrix44 &matrix0, const GxMatrix44 &matrix1)
行列乗算を取得
Definition GxMatrix.inl:4500
GX_FORCE_INLINE void setRotateX(f32 radian)
回転行列を設定(X軸回転)
Definition GxMatrix.h:691
GX_FORCE_INLINE void setPosition(const GxVector3 &position)
平行移動量のみを設定
Definition GxMatrix.inl:4086
GX_FORCE_INLINE GxVector3 getRotateZYX(void) const
ZYX軸回転角を取得
Definition GxMatrix.inl:3994
アフィン変換行列(GPU用)
Definition GxMatrix.h:874
f32 _m[3][4]
値
Definition GxMatrix.h:906
GxMatrixAffineGpu(void)
デフォルトコンストラクタ
Definition GxMatrix.h:889
アフィン変換行列(行優先)
Definition GxMatrix.h:330
static const GxMatrixAffine ZERO
0行列
Definition GxMatrix.h:339
GX_FORCE_INLINE void setRotateZYX(f32 x, f32 y, f32 z)
回転行列を設定(ZYX軸回転)
Definition GxMatrix.h:448
GX_FORCE_INLINE const GxVector3 & getZAxis(void) const
平行移動量を取得
Definition GxMatrix.h:460
GX_FORCE_INLINE void setRotateZ(f32 radian)
回転行列を設定(Z軸回転)
Definition GxMatrix.h:424
GX_FORCE_INLINE void setRotateXYZ(f32 x, f32 y, f32 z)
回転行列を設定(XYZ軸回転)
Definition GxMatrix.h:428
GX_FORCE_INLINE void setZero(void)
0を設定
Definition GxMatrix.inl:1619
GX_FORCE_INLINE GxMatrixAffine getInverse(void) const
逆行列を取得
Definition GxMatrix.inl:2430
f32 _m[4][4]
値
Definition GxMatrix.h:597
GX_FORCE_INLINE const GxMatrixAffine & mulRotateY(f32 radian)
Y軸回転乗算
Definition GxMatrix.inl:3045
GX_FORCE_INLINE void setRotateZXY(f32 x, f32 y, f32 z)
回転行列を設定(ZXY軸回転)
Definition GxMatrix.h:444
static const GxMatrixAffine IDENTITY
単位行列
Definition GxMatrix.h:341
GX_FORCE_INLINE b32 operator!=(const GxMatrixAffine &matrix)
不一致
Definition GxMatrix.inl:1789
GX_FORCE_INLINE const GxVector4 & getRow(u32 row) const
行を取得
Definition GxMatrix.inl:2281
GX_FORCE_INLINE f32 getDeterminant(void) const
行列式の値を取得
Definition GxMatrix.inl:2419
GX_FORCE_INLINE const GxMatrixAffine & mulTranslate(const GxVector3 &vector)
平行移動乗算
Definition GxMatrix.inl:3270
GX_FORCE_INLINE const GxMatrixAffine & inverse(void)
逆行列にする
Definition GxMatrix.inl:3377
GX_FORCE_INLINE f32 & getReference(u32 row, u32 column)
参照を取得
Definition GxMatrix.inl:2395
friend GX_FORCE_INLINE const GxMatrixAffine operator*(const GxMatrixAffine &matrix, f32 scalar)
スカラ乗算
Definition GxMatrix.inl:1729
GX_FORCE_INLINE GxMatrixAffine & operator/=(f32 scalar)
スカラ除算代入
Definition GxMatrix.inl:1692
GX_FORCE_INLINE const GxMatrixAffine & mulQuaternionFront(const GxQuaternion &quaternion)
クォータニオンによる回転乗算(前から乗算)
Definition GxMatrix.inl:3073
GX_FORCE_INLINE GxMatrixAffine & operator*=(f32 scalar)
スカラ乗算代入
Definition GxMatrix.inl:1680
GX_FORCE_INLINE GxVector3 getRotateZXY(void) const
ZXY軸回転角を取得
Definition GxMatrix.inl:2024
GX_FORCE_INLINE void setScale(const GxVector3 &vector)
スケール行列を設定
Definition GxMatrix.inl:2179
static GX_FORCE_INLINE const GxMatrixAffine & getAddMatrix(GxMatrixAffine &dst, const GxMatrixAffine &matrix0, const GxMatrixAffine &matrix1)
行列加算を取得
Definition GxMatrix.inl:2532
GX_FORCE_INLINE const GxMatrixAffine & mulScale(const GxVector3 &vector)
スケール乗算
Definition GxMatrix.inl:3312
GX_FORCE_INLINE void setTranslate(const GxVector3 &vector)
平行移動行列を設定
Definition GxMatrix.inl:2091
GX_FORCE_INLINE void setIdentity(void)
単位行列に設定
Definition GxMatrix.inl:1797
GX_FORCE_INLINE void setRotateX(f32 radian)
回転行列を設定(X軸回転)
Definition GxMatrix.h:416
GX_FORCE_INLINE const GxMatrixAffine & transpose(void)
転置する
Definition GxMatrix.inl:3386
static GX_FORCE_INLINE const GxMatrixAffine & getMulMatrix(GxMatrixAffine &dst, const GxMatrixAffine &matrix0, const GxMatrixAffine &matrix1)
行列乗算を取得
Definition GxMatrix.inl:2560
GX_FORCE_INLINE void setRow(u32 row, const GxVector4 &vector)
行を設定
Definition GxMatrix.inl:2304
GX_FORCE_INLINE void setRotate(const GxQuaternion &quaternion)
回転行列を設定
Definition GxMatrix.inl:2257
GX_FORCE_INLINE void initialize(const GxQuaternion &quaternion, const GxVector3 &position)
初期化
Definition GxMatrix.inl:1643
GX_FORCE_INLINE GxVector3 getRotateYXZ(void) const
YXZ軸回転角を取得
Definition GxMatrix.inl:1960
GX_FORCE_INLINE void setColumn(u32 column, const GxVector4 &vector)
列を設定
Definition GxMatrix.inl:2343
GX_FORCE_INLINE void setRotateY(f32 sinValue, f32 cosValue)
回転行列を設定(Y軸回転)
Definition GxMatrix.inl:1847
GX_FORCE_INLINE const GxMatrixAffine & mulQuaternionBack(const GxQuaternion &quaternion)
クォータニオンによる回転乗算(後ろから乗算)
Definition GxMatrix.inl:3086
GX_FORCE_INLINE GxMatrixAffine & operator=(const GxMatrixAffine &matrix)
代入
Definition GxMatrix.inl:1654
GX_FORCE_INLINE const GxVector3 & getXAxis(void) const
平行移動量を取得
Definition GxMatrix.h:456
GX_FORCE_INLINE b32 operator==(const GxMatrixAffine &matrix)
一致
Definition GxMatrix.inl:1776
GX_FORCE_INLINE GxVector3 getScale(void) const
スケールを取得
Definition GxMatrix.inl:2165
GX_FORCE_INLINE const GxMatrixAffine & mulRotateX(f32 radian)
X軸回転乗算
Definition GxMatrix.inl:3031
friend GX_FORCE_INLINE const GxMatrixAffine operator+(const GxMatrixAffine &matrix0, const GxMatrixAffine &matrix1)
行列加算
Definition GxMatrix.inl:1753
GX_FORCE_INLINE GxMatrixAffine getNormalizeAxes(void) const
位置以外の各軸を正規化したものを取得
Definition GxMatrix.inl:2452
GX_FORCE_INLINE GxVector3 getRotateXZY(void) const
XZY軸回転角を取得
Definition GxMatrix.inl:1928
GX_FORCE_INLINE GxVector3 getRotateZYX(void) const
ZYX軸回転角を取得
Definition GxMatrix.inl:2057
static GX_FORCE_INLINE void getFastMulMatrix(GxMatrixAffine &dst, const GxMatrixAffine &matrix0, const GxMatrixAffine &matrix1)
高速版。dst と matrix0, matrix1 は重なってなならない。アドレスは simd 用にアライメントされななければならない。
Definition GxMatrix.inl:2644
static GX_FORCE_INLINE b32 isSimdAlignment(const GxMatrixAffine &matrix)
simd 用にアライメントされているか調べる
Definition GxMatrix.inl:2704
GX_FORCE_INLINE f32 getValue(u32 row, u32 column) const
値を取得
Definition GxMatrix.inl:2361
GX_FORCE_INLINE void setRotateZ(f32 sinValue, f32 cosValue)
回転行列を設定(Z軸回転)
Definition GxMatrix.inl:1872
GX_FORCE_INLINE GxVector3 getRotateXYZ(void) const
XYZ軸回転角を取得
Definition GxMatrix.inl:1895
void setLookAtLH(const GxVector3 &eyePosition, const GxVector3 &atPosition, const GxVector3 &up)
左手座標系・視点行列を設定
Definition GxMatrix.cpp:138
GX_FORCE_INLINE void setRotateAxis(const GxVector3 &vector, f32 radian)
回転行列を設定
Definition GxMatrix.inl:2230
GX_FORCE_INLINE GxVector3 getRotateYZX(void) const
YZX軸回転角を取得
Definition GxMatrix.inl:1992
GX_FORCE_INLINE const GxMatrixAffine & addMatrix(const GxMatrixAffine &matrix)
行列加算
Definition GxMatrix.inl:2994
GX_FORCE_INLINE const GxMatrixAffine & mulMatrix(const GxMatrixAffine &matrix)
行列乗算
Definition GxMatrix.inl:3020
GX_FORCE_INLINE const GxMatrixAffine & mulScalar(f32 scalar)
スカラ乗算
Definition GxMatrix.inl:2940
GX_FORCE_INLINE GxVector4 getColumn(u32 column) const
列を取得
Definition GxMatrix.inl:2331
GX_FORCE_INLINE void setRotateX(f32 sinValue, f32 cosValue)
回転行列を設定(X軸回転)
Definition GxMatrix.inl:1822
static GX_FORCE_INLINE const GxMatrixAffine & getMulScalar(GxMatrixAffine &dst, const GxMatrixAffine &matrix, f32 scalar)
スカラ乗算を取得
Definition GxMatrix.inl:2474
GX_FORCE_INLINE void setRotateXZY(f32 x, f32 y, f32 z)
回転行列を設定(XZY軸回転)
Definition GxMatrix.h:432
GX_FORCE_INLINE GxMatrixAffine & operator+=(const GxMatrixAffine &matrix)
行列加算代入
Definition GxMatrix.inl:1704
GX_FORCE_INLINE GxMatrixAffine getTranspose(void) const
転置行列を取得
Definition GxMatrix.inl:2440
GX_FORCE_INLINE void setRotateYZX(f32 x, f32 y, f32 z)
回転行列を設定(YZX軸回転)
Definition GxMatrix.h:440
GX_FORCE_INLINE const GxMatrixAffine & divScalar(f32 scalar)
スカラ除算
Definition GxMatrix.inl:2966
static GX_FORCE_INLINE const GxMatrixAffine & getDivScalar(GxMatrixAffine &dst, const GxMatrixAffine &matrix, f32 scalar)
スカラ除算を取得
Definition GxMatrix.inl:2502
static GxMatrixAffine getMatrix(AXIS axis0, const GxVector3 &vector0, AXIS axis1, const GxVector3 &vector1)
2つの軸とベクトルから行列を取得
Definition GxMatrix.cpp:179
GX_FORCE_INLINE const GxMatrixAffine & mulRotateZ(f32 radian)
Z軸回転乗算
Definition GxMatrix.inl:3059
GX_FORCE_INLINE const f32 * getRowPtr(u32 row) const
行を取得
Definition GxMatrix.inl:2293
GX_FORCE_INLINE const GxVector3 & getPosition(void) const
平行移動量を取得
Definition GxMatrix.h:454
GX_FORCE_INLINE void setValue(u32 row, u32 column, f32 value)
値を設定
Definition GxMatrix.inl:2379
friend GX_FORCE_INLINE const GxMatrixAffine operator/(const GxMatrixAffine &matrix, f32 scalar)
スカラ除算
Definition GxMatrix.inl:1741
GX_FORCE_INLINE const GxVector3 & getYAxis(void) const
平行移動量を取得
Definition GxMatrix.h:458
GX_FORCE_INLINE void setScaleQuaternion(const GxVector3 &scale, const GxQuaternion &quaternion)
スケール行列を設定し、クォータニオンによる回転乗算(後ろから乗算)を行う
Definition GxMatrix.inl:3205
GxMatrixAffine(void)
デフォルトコンストラクタ(要素は全て0で初期化される)
Definition GxMatrix.h:353
GX_FORCE_INLINE void setRotateY(f32 radian)
回転行列を設定(Y軸回転)
Definition GxMatrix.h:420
GX_FORCE_INLINE void setPosition(const GxVector3 &position)
平行移動量のみを設定
Definition GxMatrix.inl:2141
void setLookAtRH(const GxVector3 &eyePosition, const GxVector3 &atPosition, const GxVector3 &up)
右手座標系・視点行列を設定
Definition GxMatrix.cpp:99
GX_FORCE_INLINE void setRotateYXZ(f32 x, f32 y, f32 z)
回転行列を設定(YXZ軸回転)
Definition GxMatrix.h:436
座標
Definition GxStruct.h:867
クォータニオン
Definition GxQuaternion.h:19
矩形
Definition GxStruct.h:951
サイズ
Definition GxStruct.h:730
2次元ベクトル
Definition GxVector.h:34
3次元ベクトル
Definition GxVector.h:245
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173