CommonLibSSE NG
NiMatrix3.h
Go to the documentation of this file.
1 #pragma once
2 
3 namespace RE
4 {
5  class NiPoint3;
6 
7  class NiMatrix3
8  {
9  public:
10  constexpr NiMatrix3() noexcept
11  {
12  entry[0][0] = 1.0f;
13  entry[0][1] = 0.0f;
14  entry[0][2] = 0.0f;
15  entry[1][0] = 0.0f;
16  entry[1][1] = 1.0f;
17  entry[1][2] = 0.0f;
18  entry[2][0] = 0.0f;
19  entry[2][1] = 0.0f;
20  entry[2][2] = 1.0f;
21  }
22 
23  NiMatrix3(const NiPoint3& a_point);
24  NiMatrix3(float a_x, float a_y, float a_z);
25  NiMatrix3(const NiPoint3& a_x, const NiPoint3& a_y, const NiPoint3& a_z);
26 
27  bool ToEulerAnglesXYZ(NiPoint3& a_angle) const;
28  bool ToEulerAnglesXYZ(float& a_xAngle, float& a_yAngle, float& a_zAngle) const;
29  void EulerAnglesToAxesZXY(const NiPoint3& a_angle);
30  void EulerAnglesToAxesZXY(float a_xAngle, float a_yAngle, float a_zAngle);
31  void SetEulerAnglesXYZ(const NiPoint3& a_point);
32  void SetEulerAnglesXYZ(float a_x, float a_y, float a_z);
34 
35  bool operator==(const NiMatrix3& a_rhs) const;
36  bool operator!=(const NiMatrix3& a_rhs) const;
37  NiMatrix3 operator*(const NiMatrix3& a_rhs) const;
38  NiPoint3 operator*(const NiPoint3& a_point) const;
39  NiMatrix3 operator*(float a_scalar) const;
40 
41  // members
42  float entry[3][3]; // 00
43  };
44  static_assert(sizeof(NiMatrix3) == 0x24);
45 }
Definition: NiMatrix3.h:8
bool operator==(const NiMatrix3 &a_rhs) const
NiMatrix3(float a_x, float a_y, float a_z)
NiMatrix3 operator*(float a_scalar) const
void EulerAnglesToAxesZXY(const NiPoint3 &a_angle)
float entry[3][3]
Definition: NiMatrix3.h:42
bool ToEulerAnglesXYZ(float &a_xAngle, float &a_yAngle, float &a_zAngle) const
NiMatrix3 operator*(const NiMatrix3 &a_rhs) const
NiMatrix3 Transpose() const
NiPoint3 operator*(const NiPoint3 &a_point) const
void SetEulerAnglesXYZ(const NiPoint3 &a_point)
NiMatrix3(const NiPoint3 &a_point)
constexpr NiMatrix3() noexcept
Definition: NiMatrix3.h:10
bool ToEulerAnglesXYZ(NiPoint3 &a_angle) const
bool operator!=(const NiMatrix3 &a_rhs) const
NiMatrix3(const NiPoint3 &a_x, const NiPoint3 &a_y, const NiPoint3 &a_z)
void EulerAnglesToAxesZXY(float a_xAngle, float a_yAngle, float a_zAngle)
void SetEulerAnglesXYZ(float a_x, float a_y, float a_z)
Definition: NiPoint3.h:6
Definition: AbsorbEffect.h:6