#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
//#include "Engine Core 2/Core Functions/stdhdr.h"
#include "Vector.h"
#include "Matrix.h"
#include "Matrix.cpp"
int main()
{
Vec3 V1(1.0f, 0.0f, 0.0f), VResult;
Matrix M1, M2, M3, M4;
M1.Translation(Vec3(0.0f,1.0f,0.0f));
M2.RotationZ(3.14159265358979323846f / 2.0f);
cout << "V1 - > " << V1 << endl;
cout << "M1 (translates one unit in the positive y direction) - > " << endl << M1 << endl;
cout << "M2 (rotates 90 degrees about the z axis) - > " << endl << M2 << endl;
M3 = M1*M2;
M4 = M2*M1;
Vec3TransformCoord(VResult, V1, M1);
cout << "V1 * M1 -> \t" << VResult << endl;
Vec3TransformCoord(VResult, V1, M2);
cout << "V1 * M2 -> \t" << VResult << endl;
Vec3TransformCoord(VResult, V1, M3);
cout << "V1 * M1 * M2 -> " << VResult << endl;
Vec3TransformCoord(VResult, V1, M4);
cout << "V1 * M2 * M1 -> " << VResult << endl;
}