#pragma once

#ifndef MGML_GUARDIAN
	#include "../CSL/MGML.h"
#endif

using namespace MGML;

struct Camera : public MGML_MATH::SSE_Aligned_Object
{

  Camera() : pos(0,0,10,1), rot(0,0,0,0) {}
  virtual ~Camera(){}
	
  virtual void Move(const vec4f& pos);
  virtual void SetRotation(const vec4f& rot);
  virtual void LookAt(const vec4f& pos, const vec4f& lookAt);
  
  virtual Matrix4x4f CalcMatrix();
  
  vec4f pos;
	vec4f rot; // using Eiler camera
	Matrix4x4f world_matrix;
	Matrix4x4f mrot;
	
};