#ifndef MATH_MATRIX_H
#define MATH_MATRIX_H

#pragma once

#include "math_vector3D.h"

class Cmatrix
{
public:
	float element[3][3];  // our 4X4 matrix

public:
	Cmatrix();
	Cmatrix(float e11, float e12, float e13, 
            float e21, float e22, float e23, 
            float e31, float e32, float e33);

	~Cmatrix();

	Cmatrix operator+ (const Cmatrix &m);	// matrix addition operator
	Cmatrix operator* (const Cmatrix &m);	// matrix by matrix multiplication operator

	Cvector mul_vec(Cvector &v);

    void Zeros();       // Set all matrix elements to zero
    void Ones();        // Set all matrix elements to one
    void Identity();    // Create the identity matrix

    void PrintMatrix();         // Print the Cmatrix
};

#endif
