#ifndef CAMERA_H
#define CAMERA_H

#include <gl/glut.h>		
#include "utils/Vector3.h"
#define PI 3.1415926535897932384626433832795
#define PIdiv180 (PI/180.0)


class CCamera
{
public:
	
	Vector3 view_dir;
	Vector3 right_vec;	
	Vector3 up_vec;
	Vector3 pos;

	GLfloat rotatedX, rotatedY, rotatedZ;	
	
public:
	CCamera();
	void render ( void );	//sets camera: call glLoadIdentity before using Render

	void move (Vector3 delta);
	void rotateX ( GLfloat angle );
	void rotateY ( GLfloat angle );
	void rotateZ ( GLfloat angle );

	void move_forward (GLfloat delta);
	void move_up (GLfloat delta);
	void strafe_right (GLfloat delta);
	
	Vector3 get_view_dir (void);

	void update_view_vectors();

};

#endif // CAMERA_H

