Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // File: Matrix4.hpp:
- /// -----------------------------------
- /// @class Matrix4
- /// @brief Represents a 4 by 4 matrix.
- /// -----------------------------------
- #ifndef __MATRIX4__
- #define __MATRIX4__
- template<typename T>
- class Matrix4 final{
- public:
- /// Constructors & destructors:
- Matrix4(void) = default;
- Matrix4(Matrix4 const& matrix_) = default;
- Matrix4(Matrix4&& matrix_) = default;
- Matrix4(T (&matrix_)[4][4]);
- Matrix4(T (&&matrix_)[4][4]);
- /// Member functions (overloaded operators, assignment):
- Matrix4& operator=(Matrix4 const& matrix_) = default;
- Matrix4& operator=(Matrix4&& matrix_) = default;
- private:
- /// Member data:
- T data[4][4] = {{0}};
- };
- #include <Matrix4.inl>
- #endif /** __MATRIX4__ **/
- // File: Matrix4.inl:
- /// -----------------------------------
- /// @class Matrix4
- /// @brief Represents a 4 by 4 matrix.
- /// -----------------------------------
- /// Constructors & destructors:
- template<typename T>
- Matrix4<T>::Matrix4(T (&matrix_)[4][4]) : Matrix4({
- .data = {
- {matrix_[0][0], matrix_[0][1], matrix_[0][2], matrix_[0][3]},
- {matrix_[1][0], matrix_[1][1], matrix_[1][2], matrix_[1][3]},
- {matrix_[2][0], matrix_[2][1], matrix_[2][2], matrix_[2][3]},
- {matrix_[3][0], matrix_[3][1], matrix_[3][2], matrix_[3][3]}
- }
- })
- {
- }
- template<typename T>
- Matrix4<T>::Matrix4(T (&&matrix_)[4][4]) : Matrix4({
- .data = {
- {matrix_[0][0], matrix_[0][1], matrix_[0][2], matrix_[0][3]},
- {matrix_[1][0], matrix_[1][1], matrix_[1][2], matrix_[1][3]},
- {matrix_[2][0], matrix_[2][1], matrix_[2][2], matrix_[2][3]},
- {matrix_[3][0], matrix_[3][1], matrix_[3][2], matrix_[3][3]}
- }
- })
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment