//P = (4, -2, 1.5)
	  //    R1 = 60 about Z 
	  //    T1 = (2, 3, 4) //
	  //    R2 = -60 about X
	 //    T2 = (-1, 2, 5)

// Include all GLM core / GLSL features
#include "glm/glm.hpp" // vec2, vec3, mat4, radians
// Include all GLM extensions
#include "glm/ext.hpp" // perspective, translate, rotate
#include <iostream>
using namespace std;

int main(void)
{
	glm::vec4 p(4.0, -2.0, 1.5, 1.0);
	glm::mat4 Proj = glm::perspective(glm::radians(60.f), 1.33f, 0.1f, 10.f);
	glm::mat4 Translate1 = glm::translate(glm::mat4(1.f), glm::vec3(2.0f, 3.0f, 4.0f));
	glm::mat4 Translate2 = glm::translate(glm::mat4(1.f), glm::vec3(-1.0f, 2.0f, 5.0f));
	glm::mat4 Rotate1 = glm::rotate(glm::mat4(1.f), glm::radians(60.0f), glm::vec3(0, 0, 1));
	glm::mat4 Rotate2 = glm::rotate(glm::mat4(1.f), glm::radians(-60.0f), glm::vec3(1, 0, 0));
	glm::mat4 View = glm::lookAt(glm::vec3(1, 1, 10), glm::vec3(0, 0, 0), glm::vec3(0, 1, 0));
	glm::vec4 pa = Rotate1 * p;
	glm::vec4 pb = Translate1 * pa;
	glm::vec4 pc = Rotate2 * pb;
	glm::vec4 pd = Translate2 * pc;
	glm::mat4 Model = Translate2 * Rotate2 * Translate1 * Rotate1;
	glm::vec4 pcheck = Model * p;

	glm::mat4 MV = View * Model;

	return 0;
}
