#ifndef _CAMERA_H_
#define _CAMERA_H_
#include "vector.h"

#define ROTMAX 1.3
#define EPILSON 0.000001

class Camera
{
public:
	struct CamPos{
		float x;
		float y;
		float z;
		float a;
	};
	Camera();
	~Camera();
	void Update();
	void GetX(float x);
	void GetZ(float z);
	void GetY(float y);
	void TurnX(float x);
	void TurnY(float y);
	void TurnZ(float z);
	float GetPosX();
	float GetPosY();
	float GetPosZ();
	float GetLookX();
	float GetLookY();
	float GetLookZ();
	void LookAt();
	bool GodMode;
	void Reset();
	int IntersectTriangle(Vector* Tri, Vector* Tri1, Vector* Tri2);
	//CamPos Pos;
	

private:

	Vector* Pos;
	/*CamPos Look;
	CamPos Up;*/
	Vector* Look;
	Vector* Up;
	Vector* MoveVector;
	Vector* MoveVectorStrafe;
	Vector* Edge1;
	Vector* Edge2;
	Vector* pVec;
	Vector* tVec;
	Vector* qVec;
	float MinX, MaxX, MinZ, MaxZ;

	float oldx,oldy,newx,newy,diffx,diffy;
	float roll, pitch, yaw;

	
};

#endif

