From ViMaSter, 11 Years ago, written in C++.
Embed
  1. #pragma once
  2.  
  3. #include "Engine.Core.Types.h"
  4.  
  5. namespace Engine { namespace Core {
  6.                 class Matrix {
  7.                 public:
  8.                         engine_float32 m11, m12, m13, m14;
  9.                         engine_float32 m21, m22, m23, m24;
  10.                         engine_float32 m31, m32, m33, m34;
  11.                         engine_float32 m41, m42, m43, m44;
  12.  
  13.                         Matrix() {
  14.                                 m11 = 1;        m12 = 0;        m13 = 0;        m14 = 0;
  15.                                 m21 = 0;        m22 = 1;        m23 = 0;        m24 = 0;
  16.                                 m31 = 0;        m32 = 0;        m33 = 1;        m34 = 0;
  17.                                 m41 = 0;        m42 = 0;        m43 = 0;        m44 = 1;
  18.                         };
  19.  
  20.                         Matrix(const Matrix& matrix2) {
  21.                                 this->m11 = matrix2.m11;        this->m12 = matrix2.m12;        this->m13 = matrix2.m13;        this->m14 = matrix2.m14;
  22.                                 this->m21 = matrix2.m21;        this->m22 = matrix2.m22;        this->m23 = matrix2.m23;        this->m24 = matrix2.m24;
  23.                                 this->m31 = matrix2.m31;        this->m32 = matrix2.m32;        this->m33 = matrix2.m33;        this->m34 = matrix2.m34;
  24.                                 this->m41 = matrix2.m41;        this->m42 = matrix2.m42;        this->m43 = matrix2.m43;        this->m44 = matrix2.m44;
  25.                         }
  26.  
  27.                         Matrix(
  28.                                 engine_float32 M11, engine_float32 M12, engine_float32 M13, engine_float32 M14,
  29.                                 engine_float32 M21, engine_float32 M22, engine_float32 M23, engine_float32 M24,
  30.                                 engine_float32 M31, engine_float32 M32, engine_float32 M33, engine_float32 M34,
  31.                                 engine_float32 M41, engine_float32 M42, engine_float32 M43, engine_float32 M44
  32.                                 ) {
  33.                                 m11 = M11;      m12 = M12;      m13 = M13;      m14 = M14;
  34.                                 m21 = M21;      m22 = M22;      m23 = M23;      m24 = M24;
  35.                                 m31 = M31;      m32 = M32;      m33 = M33;      m34 = M34;
  36.                                 m41 = M41;      m42 = M42;      m43 = M43;      m44 = M44;
  37.                         }
  38.  
  39.                         inline Matrix operator*=(const Matrix& matrix2)
  40.                         {
  41.                                 m11 *= matrix2.m11;     m12 *= matrix2.m12;     m13 *= matrix2.m13;     m14 *= matrix2.m14;
  42.                                 m21 *= matrix2.m21;     m22 *= matrix2.m22;     m23 *= matrix2.m23;     m24 *= matrix2.m24;
  43.                                 m31 *= matrix2.m31;     m32 *= matrix2.m32;     m33 *= matrix2.m33;     m34 *= matrix2.m34;
  44.                                 m41 *= matrix2.m41;     m42 *= matrix2.m42;     m43 *= matrix2.m43;     m44 *= matrix2.m44;
  45.                         }
  46.  
  47.                         inline Matrix operator*(const Matrix& matrix2) {
  48.                                 return Matrix(
  49.                                         this->m11 * matrix2.m11, this->m12 * matrix2.m12, this->m13 * matrix2.m13, this->m14 * matrix2.m14,
  50.                                         this->m21 * matrix2.m21, this->m22 * matrix2.m22, this->m23 * matrix2.m23, this->m24 * matrix2.m24,
  51.                                         this->m31 * matrix2.m31, this->m32 * matrix2.m32, this->m33 * matrix2.m33, this->m34 * matrix2.m34,
  52.                                         this->m41 * matrix2.m41, this->m42 * matrix2.m42, this->m43 * matrix2.m43, this->m44 * matrix2.m44
  53.                                 );
  54.                         }
  55.                 };
  56. } }