SA_Maths
Sapphire Suite's C++ Maths Library
Loading...
Searching...
No Matches
Matrix3Base.hpp
1// Copyright (c) 2023 Sapphire development team. All Rights Reserved.
2
3#pragma once
4
5#ifndef SAPPHIRE_MATHS_MATRIX3_BASE_GUARD
6#define SAPPHIRE_MATHS_MATRIX3_BASE_GUARD
7
9
10namespace SA
11{
13
14 namespace Intl
15 {
16 template <typename T, MatrixMajor major>
17 struct Mat3_Base;
18
19//{ Row Major
20
21 template <typename T>
22 struct Mat3_Base<T, MatrixMajor::Row>
23 {
25 T e00{ 1 }; T e01{ 0 }; T e02{ 0 };
26 T e10{ 0 }; T e11{ 1 }; T e12{ 0 };
27 T e20{ 0 }; T e21{ 0 }; T e22{ 1 };
28
29//{ Constructors
30
32 Mat3_Base() = default;
33
35 constexpr Mat3_Base(
36 T _e00, T _e01, T _e02,
37 T _e10, T _e11, T _e12,
38 T _e20, T _e21, T _e22
39 ) noexcept;
40
41//}
42 };
43
44//}
45
46//{ Column Major
47
48 template <typename T>
49 struct Mat3_Base<T, MatrixMajor::Column>
50 {
52 T e00{ 1 }; T e10{ 0 }; T e20{ 0 };
53 T e01{ 0 }; T e11{ 1 }; T e21{ 0 };
54 T e02{ 0 }; T e12{ 0 }; T e22{ 1 };
55
56//{ Constructors
57
59 Mat3_Base() = default;
60
62 constexpr Mat3_Base(
63 T _e00, T _e01, T _e02,
64 T _e10, T _e11, T _e12,
65 T _e20, T _e21, T _e22
66 ) noexcept;
67
68//}
69 };
70 }
71
72//}
73
75}
76
77#include <SA/Maths/Matrix/Matrix3Base.inl>
78
79#endif // GUARD
Matrix Major enum definitions
MatrixMajor
Matrix major enum.
Definition MatrixMajor.hpp:24
@ Column
Column major standard.
@ Row
Row major standard.