CommonLibVR
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 
30 
31  bool ToEulerAnglesXYZ(NiPoint3& a_angle) const;
32  bool ToEulerAnglesXYZ(float& a_xAngle, float& a_yAngle, float& a_zAngle) const;
33  void EulerAnglesToAxesZXY(const NiPoint3& a_angle);
34  void EulerAnglesToAxesZXY(float a_xAngle, float a_yAngle, float a_zAngle);
35  void SetEulerAnglesXYZ(const NiPoint3& a_point);
36  void SetEulerAnglesXYZ(float a_x, float a_y, float a_z);
38 
39  bool operator==(const NiMatrix3& a_rhs) const;
40  bool operator!=(const NiMatrix3& a_rhs) const;
41  NiMatrix3 operator+(const NiMatrix3& a_rhs) const;
42  NiMatrix3 operator-(const NiMatrix3& a_rhs) const;
43  NiMatrix3 operator*(const NiMatrix3& a_rhs) const;
44  NiPoint3 operator*(const NiPoint3& a_point) const;
45  NiMatrix3 operator*(float a_scalar) const;
46 
47  // members
48  float entry[3][3]; // 00
49  private:
50  KEEP_FOR_RE()
51  };
52  static_assert(sizeof(NiMatrix3) == 0x24);
53 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
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
NiPoint3 GetVectorY() const
void EulerAnglesToAxesZXY(const NiPoint3 &a_angle)
float entry[3][3]
Definition: NiMatrix3.h:48
NiPoint3 GetVectorZ() const
bool ToEulerAnglesXYZ(float &a_xAngle, float &a_yAngle, float &a_zAngle) const
NiMatrix3 operator*(const NiMatrix3 &a_rhs) const
NiMatrix3 Transpose() const
NiPoint3 GetVectorX() const
NiPoint3 operator*(const NiPoint3 &a_point) const
void SetEulerAnglesXYZ(const NiPoint3 &a_point)
NiMatrix3(const NiPoint3 &a_point)
NiMatrix3 operator-(const NiMatrix3 &a_rhs) const
NiMatrix3 operator+(const NiMatrix3 &a_rhs) const
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